AutomatorにO'Camlスクリプト


Snow Leopard で Automator が使いやすくなったようです。「ようです」と書くのも、それまであまり使ってなかったから。最近の記事では、Apple Mail のサービスを作成するのに Automator が使えることを紹介しました。今日は小飼弾さんが書かれたScripters のための Automator入門という記事を参考に、Automator で Objective Caml スクリプトが利用できることを紹介します。

ずばり、これだけ。

上の四角のなかがスクリプトで、下が実行結果です。作業は以下のとおりです。

+ Automator を起動し、雛形のなかから Workflow を選択します。((わたしの Mac は言語設定を英語にしているので、日本語環境で使っている大部分の人は頭のなかでメニューやボタンの名前を翻訳してください。))
+ Library の Utilities のなかに Run Shell Script がありますので、それを右手の領域にドラッグします。
+ シェルとしては ”/bin/sh” を指定して下さい。((/etc/shells に ocaml を指定すれば、このメニューで選択できると思うけれど、セキュリティを犠牲にするのでやめましょう。))
+ 上に書いたスクリプトの内容を記入します。
— 最初の行は O’Caml の実行ファイルがあるパス名を指定して下さい。わたしは MacPorts 経由でインストールしたので ”/opt/local/bin” を追加しました。
— 3 行目が O’Caml を起動します。”ocamlrun ocaml -noprompt” で、ocaml のインタプリタを起動します。”<< …'' は次の行から ''<< …'' で指定した文字列が出現するまでをここで起動する ocaml への入力に与えることを指示しています。
— 4-6 行目に普通の Objective Caml のプログラムを書くことができます。
— 8行目の ''(* End of Objective Caml *)'' がocamlへの入力の最後を示すマークです。3行目に指示したのと同じ文字列を書いて下さい。この行はocamlには渡されないはずなので、別に Objective Caml 流れのコメントにする意味はないのですが、なんとなくこう書いてしまいました。

ここでの方法は小飼弾さんのやり方を真似ただけなんですが、もしかして ''<<'' の指定はなくてもできるんじゃないかと思って試したら案の定、大丈夫でした。''<<'' を指定した場合のメリットってなんだろう?

PATH=/opt/local/bin:$PATH
exec ocamlrun ocaml -noprompt

print_endline "Hello world!";
Array.iter (Printf.printf "t%sn") Sys.argv;
exit(0);;

AutomatorにO'Camlスクリプト」への1件のフィードバック

コメントは受け付けていません。