コンポーネント

たとえ小さなスクリプトを作成する際にも、同じサブルーチンを何度も繰り返し書くのは非効率である上に、メンテナンスも煩雑になります。

 

例えば再帰処理を毎回書くのはいかにも面倒ですよネ。なので、共通したルーチンは、コンポーネント化して集約します。

 

AppleScriptは他の言語同様、外部のスクリプトを読み込んで活用できます。以下みたいに。

 

set myCOMP to load script file "Macintosh:components.scpt"

display dialog myCOMP's getFileList(folder "Macintosh:Folder:")

 

とは言うものの、最近のmacOSは、昔のようにユーザが自由にイジれる仕様ではなくなっています。以前は可視だったシステム関連のフォルダは不可視になって久しいです。

 

たとえば、クイックアクションで使うルーチンのコンポーネントをどこに置いておけば良いか。

 

簡単な方法としては、クイックアクションのファイルと同階層に置くのがいかにもわかりやすいです。

 

しかし、果たしてクイックアクションのファイルから見て「同階層」とはどこになるのか。クイックアクションに内包されるAppleScriptから呼び出すので、「ユーザ/Library/Services/」を示す結果となるのか。

 

 

‥‥‥‥。どこ?

 

おそらく、Automatorのパッケージファイルの中の深いところでしょう。

 

そりゃそうか。クイックアクションのファイルはそれ自体は実行ファイルじゃないもんな。「path to me」すれば、実行ファイル自身のパスを取得するのは当然か。

 

runner.xpcという実行ファイルに頼っているようですネ。でもまさか、Automatorのフレームワークの中に私独自のファイルを置くわけにはいくまい。アップデートのたびに消される可能性大。

 

う〜ん、どうしようか。

 

 

 

コンポーネントをどこかにおいて呼び出すことは簡単ですが、どうせなら、Application Supportとかに置いて、クイックアクションだけでなくスクリプトメニューやレンダー庭園(仮名)とも共用したいです。

 

しかし、従来のApplication Supportだと、マシンローカルに限定されます。Catalina以降は色々と実行許可もキビしいし。

 

むしろ、Apple IDを活用して、iCloudの特定場所にしたほうが良いかな。

 

そうすれば、同一のApple IDを使う限り、どのマシンでもコンポーネントが呼び出せます。

 

 

 

では、iCloudって、どんなパスになるんでしょう。

 

/Users/ローカルのアカウント/Library/Mobile Documents/com~apple~CloudDocs/

 

「com~apple~CloudDocs」というのが、見慣れないですが、Finderが認識できるiCloudのパスはソコみたいですネ。

 

なので、「home」(AppleScriptでのユーザホームフォルダのエイリアス)でユーザのローカルパスを取得して、「Library/Mobile Documents/com~apple~CloudDocs/」を連結し、あとはコンポーネントファイルの以下のパスを連結すれば、毎回変わらず特定できそうです。

 

/Users/ローカルのアカウント/Library/Mobile Documents/com~apple~CloudDocs/コンポーネントのパス

 

これでiMacからもMacBookからもMac miniからも、コンポーネントが呼び出せて、コンポーネントを編集して機能アップすれば、全台のMac端末に反映されます。

 

試しにTIFFの変換スクリプトを移植がてら、正常に動作するか試してみました。

 

 

 

無事、TIFFファイルが書き出されました。

 

 

 

随分と自由なファイル名ですが、クォーティング(quated form)してShellに投げるので、正常に処理されます。もちろん、仕事の時は、こんな名前は一切出しませんし、仕事用のリネームスクリプトも色々用意しています。それこそ、CODE39の文字に丸めるスクリプトとかネ。

 

*「安全な文字列に変更」というスクリプトも随分前に作りました。

 

 

クイックアクションはいっそのこと、Library/Servicesもクラウドで共有できると楽なんですが、まずはそこまでしなくても良いか。

 

今頃になって、Automatorを使い始めるのも何ですが、右クリックで素早くJPEGやTIFF、連番リネーム、項目のリストなどが取得できると、作業が地道に捗ってストレスが軽減されます。

 

「こんな感じの絵です」みたいな途中経過の画像をメールで送る時に、まさかPhotoshopを立ち上げてJPEGに変換するなんて大げさな手間はしたくないですよネ。右クリックでJPEG変換できれば楽です。

 

クイックアクセス用途だけでも、まずはAutomator重宝。

 

 

 


関連する記事

calendar

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
<< February 2020 >>

selected entries

categories

archives

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM