まずはSpotlight検索からスクリプトエディタを開きましょう。
※Spotlight検索は Command + Space で起動できます
ファイルを開く画面に行くので
Macintosh HD -> ライブラリ -> Scripts -> Forder Action Scripts
を選択し「新規書類」をクリックしてください
まずは手慣らしにMacのデスクトップのダイアログにhello worldと表示させてみましょう
エディタに
display dialog "hello world"
と記載し、▶︎を押してみてください。
画面にこのようなダイアログが出てきたら成功です。
さて、今回行いたいのは特定のPythonスクリプトを実行したい。ということなので、
iTermを開き、test.pyファイルを実行する
というスクリプトを作ってみたいと思います。
tell application "iTerm"
activate
set my_session to current session of current tab of current window
tell my_session
-- ここにターミナルコマンドを入力
write text "cd ~/Sources/my_apps/python_apps && python test.py"
end tell
end tell
iTermの現在のウィンドウを呼び出し、cd ~/Sources/my_apps/python_apps && python test.py
を叩きます。
▶︎を押してみましょう。
iTermが開かれ、指定したスクリプトが動いてくれました。
※test.pyはただHello World!と叫ぶだけのスクリプトです。
# test.py
print("Hello World!")
仕上げに、先ほどのスクリプトに”フォルダにアイテムが追加された時に動く”というトリガーを設定します
on adding folder items to this_folder after receiving added_items
tell application "iTerm"
activate
delay 5
set my_session to current session of current tab of current window
tell my_session
-- ここにターミナルコマンドを入力
write text "cd ~/Sources/my_apps/python_apps && python test.py"
end tell
end tell
end adding folder items to
on adding folder items to this_folder after receiving added_items
end adding folder items to
がトリガーの部分ですね
※iTermの準備が整う前にコマンドを実行しようとしてうまくいかないことがあったのでファイルが追加されてから5秒後(delay 5
)にコマンドが叩かれるようにしてます。
作成したスクリプトは適当な名前を付けて保存しましょう。
※保存時に書類“〜”を保存できませんでした。
などのエラーが出る場合は、Folder Action Scriptsフォルダへの書き込み権限がないかもしれません。その場合は、Folder Action Scriptsフォルダを右クリック -> 情報を見る -> 共有とアクセス権から書き込み権限を付与してください
ここまででほぼ準備は完了です。
最後に、作成したAppleScriptとフォルダを紐づけましょう。
サービス -> フォルダアクション設定
をクリック
フォルダアクション設定画面が出るので、フォルダアクションを適用したいフォルダを選択
紐づけるアクションを選択するには「+」ボタンをクリックします
様々なスクリプトが表示されますがここで先ほど作成したスクリプトを選択し、関連付けるをクリックしてください。
この画面になったら設定完了です。 実際にこのフォルダに適当なファイルを配置してみましょう。
ファイルを配置するとiTermが起動し、5秒後にPythonスクリプトが実行されました。 成功!!
AppleScriptには触れたばかりですが、アプリケーションを操作することも可能なようで色々とできることが増えて楽しいですね。
今回は以上となります。
閲覧いただきありがとうございました。みなさんのお役に立てましたら幸いです!
コメントやいいねしていただけますと励みになります☺️