INCLUDE "NSLOG.INCL" LOCAL FN RUNTERMINALCOMMAND( CMD AS CFSTRINGREF ) AS CFSTRINGREF CFSTRINGREF OUTPUTSTR = NULL TASKREF TASK = FN TASKINIT TASKSETEXECUTABLEURL( TASK, FN URLFILEURLWITHPATH( FN STRINGLOWERCASESTRING( @"/BIN/ZSH" ) ) ) CFSTRINGREF CMDSTR = FN STRINGWITHFORMAT( @"%@", FN STRINGLOWERCASESTRING( CMD ) ) CFARRAYREF ARGS = FN ARRAYWITHOBJECTS( FN STRINGLOWERCASESTRING( @"-C" ), CMDSTR, NULL ) TASKSETARGUMENTS( TASK, ARGS ) PIPEREF P = FN PIPEINIT TASKSETSTANDARDOUTPUT( TASK, P ) TASKSETSTANDARDERROR( TASK, P ) FILEHANDLEREF FH = FN PIPEFILEHANDLEFORREADING( P ) FN TASKLAUNCH( TASK, NULL ) TASKWAITUNTILEXIT( TASK ) ERRORREF ERR CFDATAREF DTA = FN FILEHANDLEREADDATATOENDOFFILE( FH, @ERR ) IF ERR THEN NSLOG( @"%@", FN ERRORLOCALIZEDDESCRIPTION( ERR ) ) : EXIT FN OUTPUTSTR = FN STRINGWITHDATA( DTA, NSUTF8STRINGENCODING ) OUTPUTSTR = FN STRINGUPPERCASESTRING( OUTPUTSTR ) END FN = OUTPUTSTR VOID LOCAL FN BUILDSNOOPYCALENDAR CFSTRINGREF CALSTR = FN STRINGWITHFORMAT( FN STRINGLOWERCASESTRING( @"\n%37S\n\n%@" ), FN STRINGUTF8STRING( @"[SNOOPY HERE]" ), FN RUNTERMINALCOMMAND( FN STRINGLOWERCASESTRING( @"CAL 1969" ) ) ) NSLOG( @"%@", CALSTR ) END FN FN BUILDSNOOPYCALENDAR HANDLEEVENTS