foo are you, man.

基本的には技術ネタ書きます. 備忘録的な感じで行きます!

osascriptコマンドでコケた話

こんにちは!
いやー毎日に毎日暑いですね。
天気も安定しないし、ジメジメだしであんまり良い気分ではありませんがそれでも着実に夏が迫ってくるように感じられて心弾みます。

さて、今回ですが事の発端は久しぶりにApplescriptを書くかと思ったところから始まります。(本題は後のほうなので飛ばして読んでも大丈夫です)
現在ブラウザで見ているページのURLとタイトルをコマンドラインで"miteru"とか打ってTwitterで呟くスクリプトを書くかーってことで、ページのURLとタイトルはApplescriptを使ってサクッと取ってこようとしました。

サクサクっとtell application "Safari"してあげて、Applescriptは書き終えました。
そこで動作を確認してみるかと

osascript show_url.scpt

してみると、

osascript[6869:507] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types:  dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.  Did find:\n\t/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper\nosascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.\nshow_title.scpt:49:53: execution error: Safari got an error:

みたいな感じでズラズラーっとエラーが出てきやがりました。

なんだこれはと思い、"osascript Error loading"でggってみると、結構色々と出てきてどうやらAdobe Unit Typesってのが悪さをしているようでこいつはx86、つまり32bitOSでないと動かないらしいです。
でも以前Applescriptでほげほげした時はosascript、エラー吐かずに使えたようなと思いを巡らすとAdobe関連といえばCS5の体験版を入れていました。
まぁ、それはともかくとしてフォーラムを読みあさるとどうやら

arch -i386 osascript hoge.scpt

として、使用するアーキテクチャi386にスイッチし32bit環境?としてコマンドを動かすことができるみたいです。(よくわかっていない)
へーこんなことできるのかと思いつつ試してみると、

arch: posix_spawnp: osascript: Bad CPU type in executable

???????????
またエラーが出てきたぞ?
とまぁ、もうなんだかここまで書いて申し訳無いのですがこのエラーに関しては特にノータッチなので割愛します。

さて、解決方法に入ります。
単刀直入に申し上げますと、Unit type conversion error | AppleScript | Photoshop | Mac OS X 10.6ここに行き、64bitに対応しているAdobe Unit Types.osaxを落として、/Library/ScriptingAdditions/に入っている既存のosaxファイルと置き換えてあげれば解決しました。

Macを使い始めて3ヶ月程度が立ちますがなんだかエラーにめげずに頑張れる様になった気がします。
というかエラーが出ないと心配になったりもします。
とまぁ今日はこのへんで!

参考文献:
Osascript error
OS X 10.6, CS4, osascript and Adobe Unit Types Problem