0017.org

旧1bit::memo。WordPress, PHP, jQuery ...etc

TerminalをAutomatorでよく行う処理を簡単サービス化

投稿日:

TerminalはUNIXの文化なだけあって、非常に便利な機能がたくさんあります。どうにか黒い画面に慣れたものの、毎回同じようなコマンドを入力する「手間」は感じるのではないでしょうか?

今回、よく使うTerminalコマンドをサービス化し、ショートカットで簡単に使う設定をメモします。

今回行う事

  • sipsコマンドを使い、大きな画像を縮小する
  • pngquantコマンドを使い、画像を軽量化する
  • それらの作業をキーボードショートカットで行えるようにする

確認環境

  • macOS Sierra 10.12.2

各コマンドの場所を知る

sipsやpngquantの実行パスの場所を調べます。whichコマンドで調べることができます。

sipsは「/usr/bin/sips」、pngquantは「/usr/local/bin/pngquant」であることがわかりました。

$ which sips
/usr/bin/sips
$ which pngquant
/usr/local/bin/pngquant

Automatorで設定

サービスを選択

Automatorの新規作成で、「サービス」を選択します。

サービスの受け取る項目を指定

今回作成するサービスは、Finderで画像を選択した時に表示されてほしいので、以下のように選択項目に「イメージ」を、検索対象に「Finder」を指定してください。

Finderの選択項目を絞り込む

Finderの選択項目を絞り込むために、設定を行います。pngquantはpngでしか使えないので、拡張子でpngも絞り込みます。

  1. 「Finder項目にフィルタを適用」をAutomatorに追加します。
  2. 「種類」が「イメージ」「である」を追加します。
  3. 「ファイル拡張子」が「png」「である」を追加します。

シェルスクリプトを追加する

対象ファイルを絞り込んだら、シェルスクリプトを追加します。

  1. 「シェルスクリプトを実行」を追加します。
  2. 入力の引き渡し方法を「引数として」に選びます。するとコードが追加されます。
  3. //ここにコマンドを記載していくと書いている所にシェルスクリプトを書いていきます。

ここで、whichコマンドで調べたコマンド場所を記載しつつ、各コマンドの設定を書きます。今回は以下のように「sipsで、縦横どちらかを600pxに、比率は変えない」、「pngquantで画像を圧縮」としました。

選択したファイル名は「"$f"」という形で取れるので、ファイル名箇所をそのように記載しています。ダブルクオーテーションが必要なので注意してください。

for f in "$@"
do
    /usr/bin/sips -Z 600 "$f"
    /usr/local/bin/pngquant --ext .png --force --speed 1 "$f"
done

ここまでのまとめ

今回の一連をまとめると以下のようになります。私は実行後通知をしてほしかったので、その記載をさらに追加しています。ここまで出来たら保存をしてください。今回はファイル名を「pngquant」としました。ここで入力した名称が、ショートカットをつける際に表示される名前になります。

Finderにショートカット追加

このサービス機能をキーボードショートカットで使えるようにします。

  1. Finderの「システム環境設定」→「キーボード」を選択します。
  2. 「ショートカット」を選択します。
  3. 左メニューから「サービス」を選択し、右側に「pngquant」が追加されているので、選択します。
  4. お好きなショートカットを追加します。

まとめ

いかがだったでしょうか?黒い画面の処理をGUI上で行うことができれば、随分便利になると思います。最初の設定だけちょっと面倒ですが、ぜひ試してみてください。

-Terminal

Copyright© 0017.org , 2017 AllRights Reserved.