설치가 시작되기 전에 사용자에게 메시지를 보낼 수 있도록 특정 프로세스가 실행 중인지 확인하기 위해 "스크립트 결과"요구 사항을 사용하려고합니다. 내 스크립트는 실패의 경우 1을 반환하고 성공한 경우 0을 반환하는 셸 스크립트입니다. 내가 가지고있는 문제는 반환 값에 관계없이 설치 프로그램의 흐름이이를 실패로 해석하고 있다는 것입니다. 놀랍도록 간단한 스크립트를 사용하지 않습니다.PackageMaker "스크립트 결과"요구 사항이 절대 전달되지 않습니다
#!/bin/bash
echo "script starting">> /tmp/myfile
true
(에코는 스크립트가 실제로 실행되고 있음을 나타냅니다.) 마지막 줄을 많은 것들 (exit 0, exit 1, "true", "TRUE")로 바꾸려고 시도했지만 테스트를 통과하지 못했습니다.
또한이 요구 사항을 활성화 할 때 distribution.dist에 추가되는 다음 JavaScript 코드를 발견했습니다.
<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 문에서 표현식은 true로 평가되지 않습니다. 그래서, 저는 이것이 제 문제라고 가정하고 있습니다. 이 코드는 PackageMaker에 의해 생성 되었기 때문에 나는이 문제를 해결하는 방법을 모른다.
업데이트
나는이 PackageMaker의 버그라는 인상을 작업하기로 결정하고, 가까운 해결 방법을 생각했습니다. 오히려 요구 사항 "스크립트의 결과"를 사용하는 것보다, 내가 가리킬 때 내 유일한 문제는이에만 작동되는 요구 사항은 "자바 스크립트의 결과"를 사용하고, 자바 스크립트 지금
function my_check() {
code = system.run('path/to/script/myscript.sh');
return code == 0;
}
같은 모습을 기능을 내장 내 스크립트 절대 경로를 통해. 분명히 이것은 설치 프로그램에 문제를 야기합니다.
감사합니다. 케빈! 그것은 나에게는 너무 늦었습니다 :-)하지만 확실히 다른 사람에게는 도움이되기를 바랍니다. – evanflash
감사합니다. 도와 줬어. -- 다른 사람. – elsamuko