elviss vor 2 Jahren
Ursprung
Commit
86fa6d9d37
2 geänderte Dateien mit 21 neuen und 43 gelöschten Zeilen
  1. 19 32
      src/PackageClass.php
  2. 2 11
      src/Utility.php

+ 19 - 32
src/PackageClass.php

@@ -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);

+ 2 - 11
src/Utility.php

@@ -125,13 +125,7 @@ function loadRepoConfigs($vendorDir,$repoNames){
 	}
 	return $configs;
 }
-function getTotalUseSpace($repoConfigs){
-	
-}
-//.distribute路径
-function getDistributeDir($vendorDir){
-	return pathJoin(dirname($vendorDir),'.distribute');
-}
+
 //获取部署日志文件
 function getLogPath($distributeDir){
 	return pathJoin($distributeDir,'log.txt');
@@ -140,10 +134,7 @@ function getLogPath($distributeDir){
 function getConfigPath($distributeDir){
 	return pathJoin($distributeDir,'config.json')
 }
-//获取部署进度信息文件
-function getInfoPath($distributeDir){
-	return pathJoin($distributeDir,'info.ini')
-}
+
 //解析部署配置文件
 function loadConfig($cfgPath){
 	if(! file_exists($cfgPath) ){