|
@@ -208,7 +208,7 @@ class PackageClass
|
|
|
$packageInfo = self::getPackageInfo($vendorDir,$repoDir,$pkg);
|
|
|
|
|
|
//执行当前依赖包的script文件
|
|
|
- if(! self::runScriptFiles($packageInfo) ){
|
|
|
+ if(! self::runPackageScriptFiles($packageInfo) ){
|
|
|
self::setProgressFailed('RUN_SCRIPT_FILES_FAILED');
|
|
|
return false;
|
|
|
}
|
|
@@ -401,18 +401,44 @@ class PackageClass
|
|
|
}
|
|
|
|
|
|
//运行脚本文件
|
|
|
- private static function runScriptFiles($packageInfo)
|
|
|
+ private static function runPackageScriptFiles($packageInfo)
|
|
|
{
|
|
|
$toolDir = $packageInfo['toolDir'];
|
|
|
$cacheDir = $packageInfo['cacheDir'];
|
|
|
$repoName = $packageInfo['repoName'];
|
|
|
+ $repoDir = $packageInfo['repoDir'];
|
|
|
$version = $packageInfo['version'];
|
|
|
$vendorDir = $packageInfo['vendorDir'];
|
|
|
$ossHost = $packageInfo['ossHost'];
|
|
|
|
|
|
+ $fileMacros = array(
|
|
|
+ '{vendor}' => $vendorDir,
|
|
|
+ '{current}' => $repoDir,
|
|
|
+ );
|
|
|
$scriptFiles = $packageInfo['helper']['script-files'] ? : array();
|
|
|
- foreach($scriptFiles as $fileInfo){
|
|
|
- $fileName = $fileInfo['name'];
|
|
|
+ foreach($scriptFiles as $info){
|
|
|
+ $name = $info['name'];
|
|
|
+ $type = $info['type'];
|
|
|
+ if($type == 'txt'){
|
|
|
+ $filePath = pathJoin($vendorDir,$name);
|
|
|
+ if(! self::runScriptFile($filePath,$fileMacros) ){
|
|
|
+ logError('failed to run script file',$filePath);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ private static function runScriptFile($filePath,$fileMacros){
|
|
|
+ $fileLines = readFileLines($filePath);
|
|
|
+ foreach($fileLine as $fileLines){
|
|
|
+ $cmd = replaceTextMacro($fileLine,$fileMacros);
|
|
|
+ logInfo("start to run script file cmd --",$cmd);
|
|
|
+ system($cmd, $ret);
|
|
|
+ if ($ret != 0) {
|
|
|
+ logError("failed to run script file cmd --",$cmd);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}
|