move_ymd の workflow 作成 : hkob の雑記録 (369)

はじめに

hkob の雑記録の第369回目(通算766日目)は、これまで Automator で用意していた move_ymd オートメーションを Alfred の workflow に変更してみます。

これまでの Automator アプリケーション

今、用意している Automator のアプリケーションは以下のように内部に Ruby script を内包しています。選択された Finder 項目を取得の後に、そのファイルをスクリプトで移動しています。

これまでの Automator アプリケーション

Alfred の Workflow

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

作成した workflow
keyword は ymd という名前にしました。

Keyword

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

Automation Task

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

Run 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 化してしまおうかと思います。

hkob.notion.site