2017-06-22 6 views
1

fdesetup(FileVault設定ツール)をプログラムで呼び出そうとしているため、資格情報を使用してFileVaultのロックを解除できるようにユーザーを追加しています。そうすれば、彼らはシングルサインオンの経験を持つことができます。Process.arguments、stdin設定ファイルをパラメータの1つに追加する方法はありますか?

対応する端末コマンドは次のとおりです。

...$ sudo fdesetup add -inputplist < pathtomyconfigplist.plist 

これは、端末で正常に動作します。

これらのパラメータをProcess.argumentsに渡すことはできますか?

let process : Process = Process() 
process.launchPath = "/usr/bin/fdesetup" 
process.arguments = ["add", "-inputplist < pathtomyconfigplist.plist"] 
process.launch() 

上記のコードを返します:

process.arguments = ["add", "-inputplist", "<", "pathtomyconfigplist.plist"] 

をしかし、これは何も返さないと私は 'sudoのfdesetupリスト' と呼ぶとき、ユーザーはありませんでした:

fdesetup: unrecognized option `-nputplist < pathtomyconfigplist.plist' 
Error: Unrecognized option. (-) 

私も試してみました追加されました。

私の問題が設定ファイルをstdinに渡すことであるか、オプション入力プラグインの前に ' - 'を付けなければならないかどうかはわかりません。

アイデア?

答えて

2

< path...のようなものは引数ではありません。それらは実際にあなたのシェルによって解釈され、あなたのプログラムから独立して扱われます。シェルが何をするかをエミュレートするには、としてファイルplistのハンドルを常にprocess.standardInputに割り当てることができます。

><|などのディレクティブと同様にX=yのような変数の割り当ては、コマンドが実行される方法に影響を与えるすべてのシェルの機能であり、入力と出力がどこに処理されます。

関連する問題