Automatorでエラーメッセージを表示したい
Automator内に書いたシェルスクリプトでなんか都合の悪いことが起きた場合、戻り値を0以外にすることでワークフローをエラー終了させることが出来ます。
しかしながら、表示されるエラーメッセージはAutomator標準のもので、制作者がエラー要因をユーザに伝えることは出来ません。
(開発時ならstderrに要因を書いておけばエラー欄に出るんだけどね。)
それでは何とも使えないので、任意のエラーメッセージを出すアクションを書いてみました。
前のアクションの出力の1行目が***error***の場合、2行目以降をメッセージボックスに表示してエラー終了します。
そうじゃない場合は前のアクションの出力をそのまま次のアクションに渡します。
on run {input, parameters} if item 1 of input is equal to "***error***" then set message to "" set msglist to rest of input repeat with linex in msglist set message to message & linex & return end repeat display dialog message buttons {"OK"} with icon 0 error else return input end if end run
これでOK。
例えば、前のアクションがstdoutが
***error*** cueファイルをドロップしてください
だった場合、こんなメッセージボックスが出ます。
ばっちり。
(その後、前述のAutomatorのエラーが表示されるのが格好悪いですが・・・)
しっかし、Apple Scriptって文法が冗長であんま好きじゃないなぁ。