「ショートカット」アプリ
最近のmacには「ショートカット」というアプリが入っている。
ショートカット(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で表示させる面倒そうなところをショートカットがやってくれるのが便利。