runScript()
でオプションwithParameters
を使用すると原因不明のエラーが発生する。詳細は不明だがrun()
の返値の型が問題だと推測される。原因は何であれ現状はこのバグを回避するには例外処理するかdoShellScript
とosascript
コマンドを代替とする。
foo.scpt
app = Application.currentApplication()
app.includeStandardAdditions = true
argv = ['hoge', 'fuga']
scpt = '/path/to/script/bar.scpt'
// パラメーターを渡すと返値が発生。エラーとなるので例外処理で回避。
// bar.scptからの返値は扱えない。
try { app.runScript(scpt, {withParameters: argv}) } catch(e) {}
// パラメーターも意図通りに渡せて返値も取得可能。
app.doShellScript(`osascript "${scpt}" ${argv.join(' ')}`)
bar.scpt
function run(argv) {
$.NSLog('%@', JSON.stringify(argv))
return argv
}