I’ve been seeing people ask about writing AppleScripts that work with Chris Johnson’s wonderful Cron app. (Note, I have no idea where you can get a copy of it nowadays.)
Writing Cron-able Scripts
Here’s a reasonably simple template that you can use. You should probably be on a Macintosh when you’re reading this. There’s a somewhat more complex Generic Cron App in the Negative Space Collection.
--How many seconds should we stay open after getting an property idletime : 10 property quittime : 30 property datestamp : 0 property CommandQueue : {} on run set datestamp to current date end run --Surround “event argsargc” & “class argc” with Option-\ & Shift-Option-\ on «event argsargc» given «class argc»:x set the end of CommandQueue to the rest of x end «event argsargc» on idle if CommandQueue is not {} then DoSomething(item 1 of CommandQueue) set CommandQueue to the rest of CommandQueue else if (current date) > (datestamp+quittime) then quit end if end if return idletime end idle on DoSomething(TheCommands) --do something with the commands that Cron sent us repeat with TheCommand in TheCommands write TheCommand & return to file "Doing Something" starting at eof end repeat end DoSomething
Save it as an Application, making sure that Stay Open and Never Show Startup Screen are clicked.
Calling Cron Apps
Besides writing Cron apps, you might also want to call some of the pre-written ones from your scripts. Here’s how you can do that:
tell application "Program Name" <<event argsargc>> given <<class argc>>:{"Program Name","param1","param2","etc."} end tell
Other Useful Tricks
- You can keep the cron apps you create separate from the bundled cron apps by creating a folder in the Cron folder and putting your apps (or aliases to them) in the folder. In crontab, you can refer to these as “:folder:appname”, rather than having to give the full path.