我想要使用「腳本結果」要求來檢查特定進程是否正在運行,以便我可以在安裝開始之前向用戶發送消息。 我的腳本是一個shell腳本,返回1表示失敗,0表示成功。我遇到的問題是,無論我的返回值如何,安裝程序流程都將其解釋爲失敗。我沒有使用一個令人難以置信的簡單腳本:PackageMaker「腳本結果」要求永遠不會通過
#!/bin/bash
echo "script starting">> /tmp/myfile
true
(回聲是保證自己的劇本,其實,跑步)。我嘗試用很多東西替換最後一行(出口0,出口1,「真」,「真」),但沒有任何結果通過測試。
我還發現了以下JavaScript代碼,當我激活此要求時,它將被添加到distribution.dist中。
<installation-check script="pm_install_check();"/>
<script>function pm_install_check() {
if(!(system.run('path/to/script/myscript.sh') == true)) {
my.result.title = 'Title';
my.result.message = 'Message';
my.result.type = 'Fatal';
return false;
}
return true;
}
</script>
據我所知,if語句中的表達式永遠不會計算爲真。所以,我認爲這是我的問題。不過,我不知道如何解決這個問題,因爲這個代碼是由PackageMaker生成的。
更新
我已經決定的印象,這是PackageMaker一個bug下工作,並且很接近的解決方法。而不是使用規定「的腳本結果」,我使用的規定「Javascript的結果」,並建立了一個JavaScript函數看起來像
function my_check() {
code = system.run('path/to/script/myscript.sh');
return code == 0;
}
現在我唯一的問題是,這將只有當我點上班我的腳本通過絕對路徑。顯然這對安裝程序造成了問題。
謝謝凱文!對我來說已經太遲了:-)但我希望這可以幫助其他人,因爲它當然不直觀。 – evanflash 2011-09-13 22:58:41
謝謝!幫助過我 - 其他人。 – elsamuko 2013-03-18 21:15:01