« Mac OS X 10.5(Leopard) で Thingamablog | Main | テンプレート要素 EntryBody の置換機能に制約 »
微妙に変わった Leopard の Automator 対応のワークフローを PipeAlert で改善してみた。
今までこのブログやメインのブログの公開には Automator で作成したワークフローを使用していた。内容は次のような感じだ。
http://idisk.mac.com/アカウント名/)を指定する。/Library/Logs/Console.log)を取得する。
Tiger まではこれで十分だった。rsync の実行の様子コンソールログにリダイレクトされていたのでコンソール.appにモニターされていた。iDisk が応答しなくなるなどによって rsync にエラーが発生するとワークフロー自体が終了してしまっていたが、モニターしているのでそれがわかるようになっていた。
ところが Leopard になってからコンソールログそのものがどこかにいってしまった。ないファイルをオープンしても何も起こらない。しかも rsync からコンソールログへリダイレクトした内容は、予めコンソール.appを開いていても届いていない。それでエラーが発生すると黙ってワークフローが終わるだけで公開したことを忘れてしまい、更新 Ping を打つタイミングが遅れてしまったりする。それならまだよいのだが、部分的に同期できた場合などはファイルの一部がアップロードされていなかったりするのだからたちが悪い。
そこで次のようにした。
http://idisk.mac.com/アカウント名/)を指定する。ただし rsync の出力やエラー出力は PipeAlert にリダイレクトする。
この PipeAlert は標準入力から得られた入力内容をダイアログに表示してくれるユーティリティだ。ファイルに保存したりクリップボードにコピーしたりもできる。
rsync を使うのは「シェルスクリプトを実行」というアクションで、シェルに /bin/bash を指定して次のような内容である。
/usr/bin/rsync --recursive --update --delete --verbose {ローカル書き出し先のフォルダ} /Volumes/アカウント名/{iDisk上の対応するフォルダ} 2>&1 | /Applications/PipeAlert.app/Contents/MacOS/PipeAlert
true
本当は Google 向けのサイトマップファイルを生成したりするステップがその前にあるのだがそれは省略。
Leopard の Automator には「結果を表示」というアクションが増えていて PipeAlert の代わりにこれを使ってもよい。