OS XのFinderでファイルの右クリックからシェルスクリプトを実行できるようにしたら非常に便利だった
価値ある情報をユーザー視点で発信するブログ
Ubuntuの標準ファイルマネージャのNautilusには、選択中のファイルをコマンドに引き渡す機能があります。
~/.gnome2/nautilus-scripts/ 以下に置いたスクリプトが、メニューから実行できるのでよく使っていました。ファイラー世代であるため、僕はこういう機能が大好きです。

OS XのFinderにも同様の機能があればなぁと思っていたのですが、標準機能であるAutomatorでもできるんですね。(続きは[Read More]から)
Automatorで「ファイル>新規」を選び、「サービス」を選択。

検索窓に「シェル」と打ち込んで、出てきた「シェルスクリプト実行」を右の領域にドラッグ。

Finderの選択項目を処理したいので、
こんな設定に。

ここが重要ですが、エディタのところを右クリックして、自動変換を全部オフにします。さもないと、シングルクオート、ダブルクオートが引用記号に自動変換されるなどで、シェルスクリプトが動かなくなります。一体何を考えているんでしょうか。


シェルスクリプトの中身はこんな感じです。Finderで選択しているGPXをKMLに変換するスクリプトです。
# (0)
line_color="ff0000ff"
line_width="3"
gpsbabel="/Applications/GPSBabelFE.app/Contents/MacOS/gpsbabel"
# (1)
for f in "$@"
do
# (2) (3)
if [ -f "$f" ]; then
# (4) (5)
case "$f" in
*\.[gG][pP][xX])
# (6)
dir=`dirname "$f"`
# (7)
file=`basename "${f%.[gG][pP][xX]}"`.kml
# http://www.gpsbabel.org/htmldoc-development/fmt_kml.html
# (8)
${gpsbabel} -N -t -i gpx -f "$f" -x simplify,count=1000 -o kml,deficon=,trackdata=1,nolabels=1,labels=0,points=0,line_color=${line_color},line_width=${line_width} -F "${dir}/${file}"
;;
esac
fi
done
Finderからは、GPX以外のファイル、フォルダなども渡されてくるため、それを弾いた上で実行しています。選択されたファイルにGPX以外のものが含まれていても、それは無視されます。あくまでも拡張子だけの判定ですが。
Command+S、ないしは「ファイル>保存」を選択すると、名前の決定を迫られるので、今回は「GPX2KML」という名前で保存しました。これでもう、Automatorは終了してOK。

既にGPXを右クリックすると「サービス>GPX2KML」が実行できるようになっています。

「システム環境設定>キーボード>ショートカット>サービス」から不要なメニュー項目を隠すことができ、「システム環境設定>キーボード>ショートカット>サービス>GPX2KML」でキーボードショートカットを割り当てることもできます。

作ったものは「/Users/ユーザ名/Library/Services」にあるため、修正が必要なときは、これをAutomatorで開きます。作ったサービスを削除したい場合は、ここから取り除きます。

ちなみに、今回作ったGPX2KMLは、バージョンアップしてGPXファイルを受け付けなくなってしまったGoogle MapsのMy Maps対策です。