macOS アプリで Process を利用するときに注意すべきこと
arguments は配列
例えば、 node index.js -c hoge -b fuga
を実行するとしよう.
その時は以下のコードになるだろう.
// Process
let pathToAppFolder = (scriptPath as NSString).deletingLastPathComponent
let arguments = ["-c", "hoge", "-b", "fuga"] // ["-c hoge", "-b fuga"] や ["-c hoge -b fuga"] にしてはいけない
let task = Process()
task.currentDirectoryPath = pathToAppFolder
task.launchPath = nodePath
task.arguments = arguments
let pipe = Pipe()
let errorPipe = Pipe()
task.standardOutput = pipe
task.standardError = errorPipe
task.launch()
task.waitUntilExit()
このとき引数の渡し方に十分気をつけなければならない.
` (スペース)` 区切りは通用しないのだ.
["-c hoge -b fuga"]
って書きそうだけど、["-c", "hoge", "-b", "fuga"]
としっかり区切って書かなければならない.
これに引っかかると1日損するぞ.