|
@@ -23,7 +23,6 @@ class PackageClass
|
|
|
self::setProgressFailed('INITIALIZE_FAILED');
|
|
|
return false;
|
|
|
}
|
|
|
- logInfo("distribute mode: ",self::$config['distribute-mode']);
|
|
|
|
|
|
//预先系统准备操作
|
|
|
if(! self::prepare($vendorDir,$rootPkg) ){
|
|
@@ -32,12 +31,27 @@ class PackageClass
|
|
|
}
|
|
|
|
|
|
//分发模式
|
|
|
- if( self::$config['distribute-mode'] == 'install'){
|
|
|
+ $dist_mode = self::$config['distribute-mode'];
|
|
|
+ logInfo("distribute mode: ",$dist_mode);
|
|
|
+ if( $dist_mode == 'install'){ //在线安装
|
|
|
self::install($vendorDir,$rootPkg,$vendorPkgs);
|
|
|
}
|
|
|
- else{
|
|
|
+ elseif( $dist_mode == 'upgrade'){ //在线升级
|
|
|
self::upgrade($vendorDir,$rootPkg,$vendorPkgs);
|
|
|
}
|
|
|
+ elseif( $dist_mode == 'offpkg'){ //生成离线包
|
|
|
+ self::offpkg($vendorDir,$rootPkg,$vendorPkgs);
|
|
|
+ }
|
|
|
+ elseif( $dist_mode == 'offinst'){ //离线安装
|
|
|
+ self::offinst($vendorDir,$rootPkg,$vendorPkgs);
|
|
|
+ }
|
|
|
+ elseif( $dist_mode == 'offupgd'){ //离线升级
|
|
|
+ self::offupgd($vendorDir,$rootPkg,$vendorPkgs);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ self::setProgressFailed('INVALID_DIST_MODE');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -93,6 +107,32 @@ class PackageClass
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
+ private static function offpkg($vendorDir,$rootPkg,$vendorPkgs){
|
|
|
+ //依赖库都已下载,默认先给个进度
|
|
|
+ self::setProgressStep1(100);
|
|
|
+
|
|
|
+ //逐个依赖仓库操作
|
|
|
+ if(! self::postUpdateVendorPkgs($vendorDir,$vendorPkgs) ){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //顶层仓库操作
|
|
|
+ if(! self::postUpdateRootPkg($vendorDir,$rootPkg) ){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //全部操作完毕
|
|
|
+ self::setProgressOK(true);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static function offinst($vendorDir,$rootPkg,$vendorPkgs){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ private static function offupgd($vendorDir,$rootPkg,$vendorPkgs){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
/*
|
|
|
private static function createModuleIni($vendorDir,$vendorPkgs)
|
|
|
{
|
|
@@ -316,7 +356,7 @@ class PackageClass
|
|
|
|
|
|
|
|
|
//获取缓存目录
|
|
|
- $cacheDir = pathJoin(CACHE_DIR,str_replace('/','-',$pkg->getName()));
|
|
|
+ $cacheDir = pathJoin(CACHE_DIR,str_replace('/','-',$repoName));
|
|
|
|
|
|
//返回包的相关信息
|
|
|
return array(
|
|
@@ -355,6 +395,15 @@ class PackageClass
|
|
|
return false;
|
|
|
}
|
|
|
logInfo("succeeded to fetch module file --",$repoName,$fileName);
|
|
|
+
|
|
|
+ //当前是生成离线包模式,同时拷贝到离线包目录
|
|
|
+ if(self::$config['offpkg-dir']){
|
|
|
+ $targetPath = pathJoin(self::$config['offpkg-dir'],str_replace('/','-',$repoName),$fileName);
|
|
|
+ if(! fileCopy($filePath,$targetPath) ){
|
|
|
+ logError($repoName,"offpkg file copy failed",$filePath,'-->',$targetPath);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 解压文件
|
|
|
if( isZipFile($fileName) ){
|