この記事は2年以上前に書かれた記事です。現状にそぐわないかもなのでご注意を。

[mac] Automatorで差分納品データを作成

Mac (OS X 10.6.4) の Automator で以下のような差分データを作成するワークフローを作成しましたので、ご紹介します。

  • 最終変更日が○年○月○日以降のデータのみ抽出
  • ディレクトリ構造は維持
  • 空ディレクトリや_notes/.mno(Dreamweaverが出力するデータ)等の不要データは削除

Automatorとは?

AutomatorとはMacに標準装備されている、様々な作業を自動化する事ができるアプリです。
若干動作が不安定ですが、単純なフローなら大きな問題はなさそうです。
「ちょっと手助けしてくれる」くらいの気持ちで付き合うと精神衛生上よさそうです。Automator

ここで作成したフローは、.workflow という拡張子のデータとして保存し、必要に応じて実行することで自動化された作業が始まります。
(他にも「サービス」や「アプリケーション」、「フォルダアクション」等の形式のフローを作成できます)

今回は都合上、フローを以下の I〜IVに分け、別ファイルとして保存・実行することにしました。

I. 納品用データの準備

納品データ準備

  1. 納品データを含むルートフォルダを選択(選択画面が出る)
  2. 1.で選択したフォルダをデスクトップにコピー
  3. 2.でコピーしたフォルダ名の末尾に「_sbn」(適当な文字列)をつける

II. 不要データ削除

不要データ削除

  1. I で用意したフォルダを認識させる
  2. 1.のフォルダの内容をサブフォルダも含めて全て取得
  3. 以下のフィルタで不要データを抽出
    ・名前(ファイル/フォルダ)に「_bk」が含まれる(バックアップファイル)
    ・名前が「_(アンダーバー)」で始まる(DWが出力する_notes等)
    ・名前が「.DS」で始まる(Macの隠しファイル.DS_Store等。たぶん意味ない)
    ・拡張子が「mno」(DWが出力するデータ)
  4. 3.で抽出したデータを別フォルダに移動
    ※「ゴミ箱に入れる」だと失敗することがあるため

III. 差分データの抽出

ディレクトリ構造を維持したまま、指定日以降のデータを抽出することはできないので、
代わりに指定日以前のデータを削除することにします。

差分データ抽出

  1. I. II. で用意したフォルダを認識
  2. 1.のフォルダの内容をサブフォルダも含めて全て取得
  3. 以下のフィルタで不要データを抽出
    ・最終変更日が「○年○月○日」より前(「ワークフローの実行時にこのアクションを表示」で実行時に日時を指定可)
    ・フォルダ以外(Macではフォルダ自身とフォルダの内容の最終変更日が同期せず(フォルダ内に今日更新したデータが含まれているのに、それを含むフォルダに変更日が10日前なんていうことがある)ので、ここでフォルダ以外を指定しないと最新データがフォルダごと削除される場合がある)
  4. 3.で抽出したデータを別フォルダに移動

ここまでのフローで、差分データの抽出は完了です。
※空のディレクトリが大量に残った状態ですが、これは次の圧縮ファイル作成時に、MacWinZipperというアプリが削除してくれます。

ここで処理したフォルダを開き、差分データに間違いがないか確認しておくとよいです。

次に空フォルダや、Mac 特有の隠しファイル(リソースフォーク等)を削除した圧縮ファイルを作成します。

IV. MacWinZipperで圧縮ファイル作成〜メール添付

MacWinZipperで圧縮
メール添付

  1. I.〜III.で処理したフォルダを認識
  2. MacWinZipperで圧縮
    ※Macのデフォルトの圧縮アプリは、Mac特有のリソースフォークと呼ばれる隠しファイルもそのまま圧縮するため、Windowsで解凍するとそれらがゴミファイルとして出てきます。また日本語が含まれるファイル名が使われている場合、Windowsで解凍すると文字化けしたりデータが壊れたりすることがあります。MacWinZipperはこれらの問題を全て解決してくれる圧縮アプリです。ついでに空フォルダも削除してくれるので、一石二鳥です。さらに圧縮時にパスワードをかけることもできます。
    詳しくは→MacWinZipper
  3. 圧縮ファイル作成が完了したことを確認し、確認ウィンドウの「OK」をクリック
    ※この工程をはさむことで、圧縮中に次の工程に移るのを防ぎます。
  4. 圧縮元フォルダを削除
  5. 新規メール作成画面を立ち上げる
    ※必要に応じて宛先・本文を設定しておくとさらに手間を減らせます。
  6. 2.で作成した圧縮ファイルを認識
  7. 圧縮ファイルを 5.の新規メールに添付する

メール添付では遅れないような容量になりそうな場合に備えて、Dropbox 経由で送信するようなワークフローも準備しておくとよさそうです。

以上が、今回作成した納品用ワークフローです。

作成方法はスクリーンショットを参考にしてください。

注)ここで紹介した方法でいかなる不具合が発生しても, 当方では責任を負うことができませんので予めご了承ください。

スポンサーリンク