|
@@ -18,11 +18,9 @@ class PackageClass
|
|
|
//逐个仓库操作
|
|
|
self::updateProgress(0);
|
|
|
foreach(self::$repoNames as $i=>$repoName){
|
|
|
- //获取顶层包信息
|
|
|
- $packageInfo = self::getPackageInfo(self::$config,$vendorDir,$repoName);
|
|
|
- if(!$packageInfo){
|
|
|
- exit();
|
|
|
- }
|
|
|
+ //获取包信息
|
|
|
+ $repoConfig = self::$repoConfigs[$repoName];
|
|
|
+ $packageInfo = self::getPackageInfo($repoConfig);
|
|
|
|
|
|
//获取当前包的module文件
|
|
|
self::fetchModuleFiles($packageInfo);
|
|
@@ -52,11 +50,17 @@ class PackageClass
|
|
|
//初始化
|
|
|
private static initialize($vendorDir){
|
|
|
//创建.distribute目录
|
|
|
- $distributeDir = getDistributeDir($vendorDir);
|
|
|
+ $distributeDir = pathJoin(dirname($vendorDir),'.distribute');
|
|
|
if( !file_exists($distributeDir) ){
|
|
|
mkdir($distributeDir,0777,true);
|
|
|
}
|
|
|
|
|
|
+ //创建module目录
|
|
|
+ $moduleDir = pathJoin(dirname($vendorDir),'module');
|
|
|
+ if( !file_exists($moduleDir) ){
|
|
|
+ mkdir($moduleDir,0777,true);
|
|
|
+ }
|
|
|
+
|
|
|
//设置日志文件路径
|
|
|
if(! defined(LOG_PATH)){
|
|
|
define('LOG_PATH',getLogPath($distributeDir))
|
|
@@ -78,33 +82,14 @@ class PackageClass
|
|
|
//获取所有依赖仓库的配置信息
|
|
|
$repoConfigs = loadRepoConfigs($vendorDir,self::$repoNames);
|
|
|
|
|
|
- //统计总体所需空间
|
|
|
- self::$totalUseSpace = getTotalUseSpace($repoConfigs);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
//获取包相关信息
|
|
|
- private static function getPackageInfo($config,$vendorDir, $repoName){
|
|
|
- $rootDir = dirname($vendorDir);
|
|
|
- if($repoName == "."){
|
|
|
- $repoDir = $rootDir; //最上层包所在目录
|
|
|
- }
|
|
|
- else{
|
|
|
- $repoDir = pathJoin($vendorDir,$repoName);//其他依赖包所在目录
|
|
|
- }
|
|
|
-
|
|
|
- //解析composer.json
|
|
|
- $cfgPath = pathJoin($repoDir,'composer.json');
|
|
|
- $data = json_decode(file_get_contents($cfgPath), true);
|
|
|
- if(!$data["version"]){
|
|
|
- logError('no version node exists',$cfgPath);
|
|
|
- return false;
|
|
|
- }
|
|
|
+ private static function getPackageInfo($data){
|
|
|
+ $config = self::$config;
|
|
|
$moduleName = $data["distribute-helper"]["module-name"];
|
|
|
- if(!$moduleName){
|
|
|
- logError('no distribute-helper/module-name node exists',$cfgPath);
|
|
|
- return false;
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
//获取安装目录
|
|
|
$commonDir = pathJoin($rootDir,'common');
|
|
@@ -118,7 +103,6 @@ class PackageClass
|
|
|
//返回包的相关信息
|
|
|
return array(
|
|
|
"repoName" => $data["name"],
|
|
|
- "repoDir" => $repoDir,
|
|
|
"cacheDir" => $cacheDir,
|
|
|
"ossHost" => $config['oss-host'],
|
|
|
"moduleName" => $moduleName,
|
|
@@ -142,7 +126,8 @@ class PackageClass
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- foreach($moduleFiles as $fileName){
|
|
|
+ foreach($moduleFiles as $fileInfo){
|
|
|
+ $fileName = $fileInfo['name'];
|
|
|
printf("[%s] fetching file -- %s\n",$repoName,$fileName);
|
|
|
|
|
|
//下载文件到缓存区
|
|
@@ -173,7 +158,8 @@ class PackageClass
|
|
|
logInfo($repoName,'no common files defined. skip.');
|
|
|
return;
|
|
|
}
|
|
|
- foreach($commonFiles as $fileName){
|
|
|
+ foreach($commonFiles as $fileInfo){
|
|
|
+ $fileName = $fileInfo['name'];
|
|
|
printf("[%s] fetching common file -- %s\n",$repoName,$fileName);
|
|
|
//下载文件到缓存区
|
|
|
$filePath = downloadToDir($ossHost,$repoName,$fileName,$cacheDir);
|
|
@@ -203,7 +189,8 @@ class PackageClass
|
|
|
logInfo($repoName,'no config files defined. skip.');
|
|
|
return;
|
|
|
}
|
|
|
- foreach($configFiles as $fileName){
|
|
|
+ foreach($configFiles as $fileInfo){
|
|
|
+ $fileName = $fileInfo['name'];
|
|
|
printf("[%s] fetching config file -- %s\n",$repoName,$fileName);
|
|
|
//下载文件到缓存区
|
|
|
$filePath = downloadToDir($ossHost,$repoName,$fileName,$cacheDir);
|