小编eva*_*ash的帖子

PackageMaker"脚本结果"要求永远不会通过

我正在尝试使用"脚本结果"要求来检查特定进程是否正在运行,以便我可以在安装开始之前向用户发送消息.我的脚本是一个shell脚本,失败返回1,成功返回0.我遇到的问题是,无论我的返回值如何,安装程序流程都会将其解释为失败.我没有使用一个非常简单的脚本:

#!/bin/bash
echo "script starting">> /tmp/myfile
true
Run Code Online (Sandbox Code Playgroud)

(回声是为了向自己保证脚本实际上正在运行).我已经尝试用很多东西替换最后一行(退出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>
Run Code Online (Sandbox Code Playgroud)

据我所知,if语句中的表达式永远不会评估为true.所以,我认为这是我的问题.不过,我不知道如何绕过它,因为这段代码是由PackageMaker生成的.


更新

我决定在这种情况下工作,这是PackageMaker中的一个错误,并且接近于解决方法.我没有使用"脚本结果"的要求,而是使用了"Javascript的结果"要求,并构建了一个Javascript函数,看起来像

function my_check() {
    code = system.run('path/to/script/myscript.sh');
    return code == 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我唯一的问题是,只有当我通过绝对路径指向我的脚本时,这才会起作用.显然,这给安装者带来了问题.

packagemaker

3
推荐指数
1
解决办法
2109
查看次数

标签 统计

packagemaker ×1