|
@@ -77,6 +77,11 @@ class PackageClass
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ //运行各个依赖仓库的脚本
|
|
|
+ if(! self::runVendorPkgsScript($vendorDir,$vendorPkgs) ){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
//顶层仓库操作
|
|
|
if(! self::postUpdateRootPkg($vendorDir,$rootPkg) ){
|
|
|
return false;
|
|
@@ -193,6 +198,23 @@ class PackageClass
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ private static function runVendorPkgsScript($vendorDir,$vendorPkgs)
|
|
|
+ {
|
|
|
+ $count = count($vendorPkgs);
|
|
|
+ foreach($vendorPkgs as $i=>$pkg){
|
|
|
+ //获取包信息
|
|
|
+ $repoDir = pathJoin($vendorDir,$pkg->getName());
|
|
|
+ $packageInfo = self::getPackageInfo($vendorDir,$repoDir,$pkg);
|
|
|
+
|
|
|
+ //执行当前依赖包的script文件
|
|
|
+ if(! self::runScriptFiles($packageInfo) ){
|
|
|
+ self::setProgressFailed('RUN_SCRIPT_FILES_FAILED');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
private static function postUpdateRootPkg($vendorDir,$pkg)
|
|
|
{
|
|
|
//获取包信息
|
|
@@ -378,6 +400,22 @@ class PackageClass
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ //运行脚本文件
|
|
|
+ private static function runScriptFiles($packageInfo)
|
|
|
+ {
|
|
|
+ $toolDir = $packageInfo['toolDir'];
|
|
|
+ $cacheDir = $packageInfo['cacheDir'];
|
|
|
+ $repoName = $packageInfo['repoName'];
|
|
|
+ $version = $packageInfo['version'];
|
|
|
+ $vendorDir = $packageInfo['vendorDir'];
|
|
|
+ $ossHost = $packageInfo['ossHost'];
|
|
|
+
|
|
|
+ $scriptFiles = $packageInfo['helper']['script-files'] ? : array();
|
|
|
+ foreach($scriptFiles as $fileInfo){
|
|
|
+ $fileName = $fileInfo['name'];
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
//下载包module文件
|
|
|
private static function fetchModuleFiles($packageInfo)
|
|
|
{
|
|
@@ -628,7 +666,7 @@ class PackageClass
|
|
|
}
|
|
|
$targetName = $fileInfo['target'];
|
|
|
$targetPath = pathJoin($rootDir,$targetName);
|
|
|
- if( replaceMacro($filePath,$targetPath,$macros) ){
|
|
|
+ if( replaceFileMacro($filePath,$targetPath,$macros) ){
|
|
|
logInfo("succeeded to replace macro file",$fileName);
|
|
|
}
|
|
|
else{
|