|
@@ -10,7 +10,10 @@ class PackageClass
|
|
|
public static function postUpdate($vendorDir,$rootPkg,$vendorPkgs)
|
|
|
{
|
|
|
//初始化
|
|
|
- self::initialize();
|
|
|
+ if(! self::initialize($vendorDir)){
|
|
|
+ self::setUpdateFailed('INITIALIZE_FAILED');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
//依赖库都已下载,默认先给个进度
|
|
|
self::updateProgress(0,100);
|
|
@@ -20,6 +23,10 @@ class PackageClass
|
|
|
|
|
|
//顶层仓库操作
|
|
|
self::postUpdateRootPkg($vendorDir,$rootPkg);
|
|
|
+
|
|
|
+ //全部操作完毕
|
|
|
+ self::setUpdateOK(true);
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
private static function postUpdateVendorPkgs($vendorDir,$vendorPkgs)
|
|
@@ -63,9 +70,6 @@ class PackageClass
|
|
|
|
|
|
//注册自启动程序
|
|
|
self::registerAutorun($packageInfo);
|
|
|
-
|
|
|
- //更新部署进度
|
|
|
- self::updateProgress(2,100);
|
|
|
}
|
|
|
//初始化
|
|
|
private static function initialize($vendorDir)
|
|
@@ -85,28 +89,44 @@ class PackageClass
|
|
|
//设置日志文件路径
|
|
|
if(! defined(LOG_PATH)){
|
|
|
$logPath = pathJoin($distributeDir,'log.txt');
|
|
|
- define('LOG_PATH',getLogPath($logPath));
|
|
|
+ define('LOG_PATH',$logPath);
|
|
|
}
|
|
|
|
|
|
+ //设置进度文件路径
|
|
|
+ if(! defined(PROGRESS_PATH)){
|
|
|
+ $progressPath = pathJoin($distributeDir,'progress.txt');
|
|
|
+ define('PROGRESS_PATH',$progressPath);
|
|
|
+ }
|
|
|
+
|
|
|
//获取部署配置信息
|
|
|
- if(! self::$config){
|
|
|
- $cfgPath = pathJoin($distributeDir,'config.json');
|
|
|
- $config = loadConfig($cfgPath);
|
|
|
- if(!$config){
|
|
|
- printf("Failed to load distribute config -- %s\n",$cfgPath);
|
|
|
- return false;
|
|
|
- }
|
|
|
- $config['progress.txt'] = pathJoin($distributeDir,'progress.txt');
|
|
|
- self::$config = $config;
|
|
|
+ $cfgPath = pathJoin($distributeDir,'config.json');
|
|
|
+ $config = loadConfig($cfgPath);
|
|
|
+ if(!$config){
|
|
|
+ printf("Failed to load distribute config -- %s\n",$cfgPath);
|
|
|
+ return false;
|
|
|
}
|
|
|
+ self::$config = $config;
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
private static function updateProgress($step,$percent)
|
|
|
{
|
|
|
- file_put_contents(self::$config['progress.txt'],strval($percent));
|
|
|
+ file_put_contents(PROGRESS_PATH,strval($percent));
|
|
|
+ }
|
|
|
+ private static function setUpdateFailed($msg)
|
|
|
+ {
|
|
|
+ file_put_contents(PROGRESS_PATH,"FAIL:" . $msg);
|
|
|
+ }
|
|
|
+ private static function setUpdateOK($restart)
|
|
|
+ {
|
|
|
+ if($restart){
|
|
|
+ file_put_contents(PROGRESS_PATH,"OK:NEED_RESTART");
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ file_put_contents(PROGRESS_PATH,"OK:NO_RESTART");
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
//获取包相关信息
|
|
|
private static function getPackageInfo($vendorDir,$repoDir,$pkg)
|
|
|
{
|