macの「ショートカット」をcronで定期実行すると便利そう

「ショートカット」アプリ

最近のmacには「ショートカット」というアプリが入っている。

ショートカット(Shortcuts.app)とは自分で複数の処理を組み合わせたワークフローを作り、ワンクリックでそのワークフローを実行できる便利そうなアプリだ。

Shortcuts.app

シェルスクリプトを実行することができて、その結果を表示したりmacの通知に送ったりということが簡単にできる。

このショートカットが定期的に実行できれば便利なんだが、「ショートカット」アプリ単体ではそのような機能はない。

cronを使う

このショートカットのワークフロー、実はターミナルからも実行できる。

$ shortcuts run "hello by shellscript"

というように shortcuts run ショートカット名 で実行できる。便利だ。

ということは cron で実行できれば定期的に実行できそうだ。

macには一応cronが入っているので crontab -e か、ファイルを作ってcrontab filename でインポートするかして、任意のショートカットを定期的に実行する事ができる。

0 9-23 * * * shortcuts run "hello by shellscript"

上のcronの設定は 9時から23時の0分に "hello by shellscript" というショートカットを実行するという意味だ。

macで定期実行する場合はcronではなくlaunchdを使うべきという情報もネットで見つけたけど、launchdはplistファイルで設定するらしく、面倒なので諦めた。launchdを使う場合、macがスリープしていた場合でも起動時に実行できなかったタスクを実行できたりするらしい。

ともかくcronでショートカットが定期実行できるようになったので、とりあえず定期的に brew outdated してアップデートが利用可能なフォーミュラを表示するようにしてみた。

ショートカット

そのままやると brew のパスが通ってなかったので source ~/.zshrc してる。

GUIで表示させる面倒そうなところをショートカットがやってくれるのが便利。