Gerolian

Webサイト制作でのメモ等

[Bash] fswatchでファイルを監視して外部アプリに渡す

2015年1月14日

画像をあるディレクトリに置いたときに自動的にそれを縮小してくれるものが欲しかったのでautomator + Bashで作ってみた

やりたいこと

1.スクリーンショットを撮ったら指定ディレクトリに保存される
2.指定ディレクトリにファイルが追加されたらそれを複製してパスを投げる
3.受け取ったパスをもとにAutomatorアプリでトリムする

EyeFiとかと連動してアップするとかでも面白いかもね

監視するコマンド

最初は inotifywait を使おうと思ったけどbrewのリポジトリに登録されてなかったので emcrisostomo/fswatch を使用することに

作ってみる step1

fswatchを使えるようにする

作ってみる step2

Bashをこんな感じで

作ってみる step3

AutomatorはこんなかんじにしてAppファイルにしておく
[オリジナルサイズ]

詰まったところ

fswatchしてるディレクトリ内で画像を変換アプリに通そうとしたら一時ファイルができるので無限ループに陥った
=> 監視外のフォルダにコピーしてそこで作業するように

最初パイプのみでやろうとしたため色々困ってた
cp -v とかやろうとしてたけど普通に無理だよね..

=> fswatchしたリストをwhileに飛ばした (オフィシャルにドキュメントがあった)

作ってから

そういうアプリって星の数ほどありそうなので作るだけ無駄だったかもってことに終わった後気付いた



コメントはお気軽にどうぞ

メールアドレスは公開されません。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。