Browse Source

add copy-files

elviss 2 years ago
parent
commit
bf20ba1488
1 changed files with 28 additions and 0 deletions
  1. 28 0
      src/PackageClass.php

+ 28 - 0
src/PackageClass.php

@@ -113,6 +113,9 @@ class PackageClass
 		$repoDir = dirname($vendorDir);
 		$packageInfo = self::getPackageInfo($vendorDir,$repoDir,$pkg);
 		
+		//注册全局路径
+		self::copyCopyFiles($packageInfo);
+		
 		//注册全局路径
 		self::registerPath($packageInfo);
 		
@@ -222,6 +225,7 @@ class PackageClass
 		return array(
 			"repoName" => $pkg->getName(),
 			"version" => $pkg->getPrettyVersion(),
+			"rootDir" => $rootDir,
 			"cacheDir" => $cacheDir,
 			"toolDir" => $config['tool-dir'],
 			"ossHost" => $config['oss-host'],
@@ -325,6 +329,30 @@ class PackageClass
 		return true;
 	}
 	
+	//拷贝copy-files文件
+	private static function copyCopyFiles($packageInfo)
+	{
+		$cacheDir = $packageInfo['cacheDir'];
+		$repoName = $packageInfo['repoName'];
+		$version = $packageInfo['version'];
+		$rootDir = $packageInfo['rootDir'];
+		$copyFiles = $packageInfo['helper']['copy-files'] ? : array();
+		foreach($copyFiles as $fileInfo){
+			$fileName = $fileInfo['name'];
+			$targetName = $fileInfo['target'];
+			$filePath = pathJoin($rootDir,$fileName);
+			if(! file_exists($filePath) ){
+				logError($repoName,"file not exists",$filePath);
+				return false;
+			}
+			if(!$fileInfo['override'] && file_exists($targetPath)){
+				logInfo($repoName,"skip copy file",$targetPath);
+			}
+			$targetPath = pathJoin($rootDir,$targetName);
+			fileCopy($filePath,$targetPath);
+		}
+		return true;
+	}	
 	private static function registerPath($packageInfo)
 	{
 	}