はじめに
hkob の雑記録の第369回目(通算766日目)は、これまで Automator で用意していた move_ymd オートメーションを Alfred の workflow に変更してみます。
これまでの Automator アプリケーション
今、用意している Automator のアプリケーションは以下のように内部に Ruby script を内包しています。選択された Finder 項目を取得の後に、そのファイルをスクリプトで移動しています。

Alfred の Workflow
作成した workflow は以下のようになりました。


Finder で選択しているファイルを Automation Task で取得できます。

Run script は Automator の Ruby script そのままで問題ありませんでした。

一応、スクリプトはこちらに掲載しておきます。
require 'FileUtils' Heading = '/Users/hkob/Dropbox/by_year' LogFile = "#{Heading}/move_ymd.log" if File.exists?(Heading) open(LogFile, "a") do |file| ARGV.each do |f| fn = f.chomp d = File.mtime(fn) yn = d.strftime("%Y").to_i mn = d.strftime("%m").to_i yn -= 1 if mn < 4 y = "#{Heading}/#{yn}"; Dir.mkdir(y) unless File.exists?(y) ym = d.strftime("#{y}/%Y_%m"); Dir.mkdir(ym) unless File.exists?(ym) ymd = d.strftime("#{ym}/%Y_%m_%d"); Dir.mkdir(ymd) unless File.exists?(ymd) FileUtils.mv(fn, ymd); file.print "#{fn} -> #{ymd}\n" system("open #{ymd}") end end end
動作確認
Finder でファイルを選択している状態で、Alfred から ymd コマンドを実行すると 年度/年_月/年_月_日 のフォルダの下にファイルが移動します。プロジェクトなどには関わらないが、一定期間保存しておきたいファイルはこのように日付ごとに管理しています。年度ごとに保存しているので、一定期間経ったものはローカルには置かずに、Dropbox の中だけで管理しています。

おわりに
Automator のアプリケーションだと、毎回 Applications にインストールしたりするのが面倒でした。Alfred だと一つのマシンで設定してしまえば、すべての Mac で利用できるようになるので便利でしたね。さっさと移行していればよかったです。Automation Task は意外と使えるタスクが多いので、その他の細かいものも Workflow 化してしまおうかと思います。