2015-09-03T16:02:21+09:00

AppleScrit Applet で main.scpt を保存したくない

AppleScript Applet で実行時に property を変更すると、その変更は Applet 終了時に保存されて、次の実行時にも引き継がれる・・・って知ってましたか?つまり、AppleScript Applet はファイルの書き出し等を行わずとも自分自身がデータの格納場所になれるという面白い性質があります。

実際には、Applet のバンドル内の main.scpt が実行の度に更新されます。今回は、main.scpt を更新して欲しくない、というケースを考えます。というのも、AppleScript Applet を git のバージョン管理下に置きたいのです。Applet の実行の度に main.scpt がコミットの対象になっては困りますから、main.scpt の更新(property の保存)をさせない細工をしたくなります。

どこかに、正式なやり方はないものでしょうか? Info.plist あたりに何らかの値を設定したら main.scpt は書き換えない!というような仕組みがあればスマートだと思うのですが、見つけられませんでした。

仕方が無いので、泥臭く、

のどちらかで目的を果たせないか調べました。

結論から言えば、どちらも「main.scpt は書き換えない」という最低限の目的は果たせます。他のファイル操作ではどうか?できるだけ、影響が少ない方を選びたい。

アクセス権を無くす ロックする
ゴミ箱に入れる 警告/確認無しでできる。 警告/確認無しできる。
ロックされたファイルは警告されるがパッケージ内のファイルなら警告無いのか。
ゴミ箱を空にする 警告/確認無しでできる。 警告/確認ダイアログが表示されるが、空にはできる。
AppleScript エディタでスクリプトの変更を保存 保存できない。「書類“xxx”を保存できませんでした。」というメッセージが表示される。 書き込みできる。書き込み後の main.scpt はロックされていない。

ロックした場合、AppleScript エディタでスクリプトの変更を保存すると、ロックが外れてしまうのは不本意である。とりあえず、「アクセス権を無くす」方法で対処しよう。

git の管理下において、副作用が無ければいいのだけど。