diff --git a/i_entrance/j_server_get_admin_status.php b/i_entrance/j_server_get_admin_status.php index 358df58d..5f4e681d 100644 --- a/i_entrance/j_server_get_admin_status.php +++ b/i_entrance/j_server_get_admin_status.php @@ -76,7 +76,7 @@ foreach (AppConf::getList() as $setting) { 'korName' => $serverKorName, 'color' => $serverColor, 'isRoot' => $serverDir == $rootServer, - 'lastGitPath' => ($serverGitPath[$serverDir][0])??'origin/devel' + 'lastGitPath' => ($serverGitPath[$serverDir][0])??($serverDir == $rootServer?'devel':'origin/devel') ]; $server[] = $state; } diff --git a/j_updateServer.php b/j_updateServer.php index 7f68763c..300bfa9f 100644 --- a/j_updateServer.php +++ b/j_updateServer.php @@ -58,12 +58,13 @@ if(!$allowUpdate){ ]); } +$src_target = $storage->$server; +if($src_target){ + $src_target = $src_target[0]; +} if(!$allowFullUpdate || !$target){ - $target = $storage->$server; - if($target){ - $target = $target[0]; - } + $target = $src_target; } else{ $target = $request['target']; @@ -114,6 +115,26 @@ if(!file_exists($server)){ if($server == $baseServerName){ + + exec("git fetch 2>&1", $output); + if($output){ + Json::die([ + 'result'=>false, + 'reason'=>'git pull 작업 : '.join(', ', $output) + ]); + } + + if($target != $src_target){ + $command = sprintf('git checkout %s -q 2>&1', $target); + exec($command, $output); + if($output){ + Json::die([ + 'result'=>false, + 'reason'=>join(', ', $output) + ]); + } + } + exec("git pull -q 2>&1", $output); if($output && $output[0] != 'Already up-to-date.'){ Json::die([ @@ -130,7 +151,7 @@ if($server == $baseServerName){ ], true ); - $storage->$server = [null, $version]; + $storage->$server = [$target, $version]; Json::die([ 'server'=>$server, diff --git a/js/admin_server.js b/js/admin_server.js index e2c4475d..0e38c74d 100644 --- a/js/admin_server.js +++ b/js/admin_server.js @@ -38,22 +38,20 @@ function serverUpdate(caller){ return; } - if(isRoot){ - if(!confirm('서버 라이브러리, 루트 서버에 대해 git pull을 실행합니다.')){ - return; - } - } - else if(!allowFullUpdate){ - if (!confirm('다음 git tree-ish 주소로 업데이트를 시도합니다 : ' + target)) { - return; - } - } - else { + + if(allowFullUpdate){ target = prompt('가져올 git tree-ish 명을 입력해주세요.', target) if(!target){ return; } - + } + else if(isRoot){ + if(!confirm('서버 라이브러리, 루트 서버에 대해 git pull을 실행합니다.')){ + return; + } + } + else if (!confirm('다음 git tree-ish 주소로 업데이트를 시도합니다 : ' + target)) { + return; } $.ajax({