Mac の標準搭載アプリ "Automator" を使って、Windows のバッチファイルの様な処理を実現する方法
最近、Rubyを勉強したので、作業効率化のためにRubyでバッチ処理を書いてみました。
せっかく作ったから使いたいけど、毎回rubyコマンドをたたいてバッチ処理を実行するのはたいへんなので、Macでも、Windowsのbatファイルのように、シェルスクリプトをダブルクリックして実行できないか調べてみました。
Automator は "自動化ワークフロー" を簡単に作るツールなので、バッチ処理専用のツールでありませんが、試した結果、Macのデフォルトアプリ「Automator」に、シェルスクリプトを設定すればできたので、その手順を記載します。
環境
Mac Studio 2022 M1 Max
OS: macOS 14.5 (Sonoma)
準備
テスト用のRubyファイルを作成する。
# テスト用
# 出力ファイル
OUTPUT_FILE = "/Users/[ユーザー名]/Documents/Automator/result.txt"
File.open(OUTPUT_FILE, "w") do |file|
file.write("バッチ処理を実行しました")
end手順
1.Finderを開き、アプリケーションから「Automator.app」を選択

2.「書類の種類を選択してください」で、「アプリケーション」を選び、右下の「選択」押下

3.アプリケーションの設定ウィンドウで、「アクション」タブを選択
4.「ライブラリ>ユーティリティ」を選択後、右側に表示される「シェルスクリプトを実行」をダブルクリック

5.右側に表示される「シェルスクリプトを実行」に、Rubyファイルを実行するためのシェルスクリプトを記載する

<サンプル>
#!/bin/zsh
# Rubyファイルのパス
ruby_file="/Users/[ユーザー名]/Documents/Automator/test.rb"
# Rubyファイルを実行
ruby "$ruby_file"補足
上記手順のシェルスクリプトの先頭に「zsh」を付与したが、bashなどシェルの種類はたくさんあり、自分のPCがどのシェルを使用しているのかわからない場合がある。
どのシェルを使用しているか確認する場合、以下のコマンドをターミナルで実行する。
※ターミナルの上部に、シェルの種類が表示されている場合もある。
echo $SHELL6.「command + S」で、作成したアプリケーションを保存する

稼働確認
作成したアプリケーションが、正常に実行されるかを確認する。
1.作成した「testAutomatorRunRuby.app」をダブルクリック

※バッチ処理で権限設定をしていないため、アクセス権限を確認するウィンドウが表示されることがあるが、許可で問題なし

2.バッチが実行され、resultファイルが出力されることを確認
