macでinotify

スポンサーリンク

最近ドキュメントを作るときに携帯電話のスクリーンショットを大量に使い、都度縮尺したりしていて非常に面倒だったのでたまには頭をつかうことにした。
縮尺はimagemagickで実施しているので、後は何かをトリガーに自動で縮尺が走ればOK。そこでinotify。
mac版inotify-toolsがfswatchを言うパッケージでhomebrewでインストール可能。

brew install fswatch

スクリーンショットを所定のディレクトリに入れると縮尺するshell scriptを書く。

#!/usr/bin/env bash

WATCH_DIR=/path/to/images
THUMB_DIR=/path/to/thumbs

trap "exit 0" 1 2 3 15

fswatch -0 $WATCH_DIR | \
    while read -d "" file
    do
        test -d $file && continue
        to_file="${THUMB_DIR}/$(basename $file)"
        test -e $file && identify $file > /dev/null 2>&1 && convert -resize 30% $file $to_file
    done

trapはもう少しちゃんと何かを書くべきかと思うが一応書いておいた。
その他、上書きチェックとかしてないので同名ファイルは常に上書きされたり、画像ファイルか否かの判定をidentifyコマンドの戻り値でやってたり、適当な感じで。

このスクリプト(仮にimgwatchとする)を起動すれば、WATCH_DIRに画像を入れるとTHUMB_DIRに縮尺画像を吐き出してくれる。

./imgwatch

[amazonjs asin=”4873112540″ locale=”JP” title=”入門bash 第3版”]

コメント

タイトルとURLをコピーしました