diff --git a/.vscode/settings.json b/.vscode/settings.json index bd031fea..a392abc4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,10 +7,18 @@ "**/.DS_Store": true, "**/logs/*.txt": true, "**/session/sess*":true, + "/che":true, + "/kwe":true, + "/pwe":true, + "/twe":true, }, "search.exclude": { "e_lib/*":true, - "vendor/*":true + "vendor/*":true, + "/che":true, + "/kwe":true, + "/pwe":true, + "/twe":true, }, } \ No newline at end of file diff --git a/hwe/d_setting/VersionGit.orig.php b/hwe/d_setting/VersionGit.orig.php index 9345b263..bedbba01 100644 --- a/hwe/d_setting/VersionGit.orig.php +++ b/hwe/d_setting/VersionGit.orig.php @@ -5,4 +5,5 @@ class VersionGit{ public static $version = '_tK_verionGit_'; private function __construct(){} -} \ No newline at end of file +} +//{"version":"_tK_verionGit_"} diff --git a/i_entrance/j_server_get_admin_status.php b/i_entrance/j_server_get_admin_status.php index 05f36bff..a89111c4 100644 --- a/i_entrance/j_server_get_admin_status.php +++ b/i_entrance/j_server_get_admin_status.php @@ -17,6 +17,8 @@ $result = []; $server = []; +$rootServer = end(AppConf::getList())->getShortName(); + foreach (AppConf::getList() as $setting) { $serverColor = $setting->getColor(); $serverKorName = $setting->getKorName(); @@ -28,18 +30,24 @@ foreach (AppConf::getList() as $setting) { $state = [ 'valid'=>false, 'run'=>false, + 'installed'=>false, + 'version'=>$setting->getVersion(), 'reason'=>'디렉토리 없음' ]; } elseif (!file_exists($serverPath.'/index.php')) { $state = [ 'valid'=>false, 'run'=>false, + 'installed'=>false, + 'version'=>$setting->getVersion(), 'reason'=>'index.php 없음' ]; } elseif (!$setting->isExists()) { $state = [ 'valid'=>false, 'run'=>false, + 'installed'=>true, + 'version'=>$setting->getVersion(), 'reason'=>'설정 파일 없음' ]; } elseif (!$setting->isRunning()) { @@ -47,6 +55,8 @@ foreach (AppConf::getList() as $setting) { $state = [ 'valid'=>true, 'run'=>false, + 'installed'=>true, + 'version'=>$setting->getVersion(), 'reason'=>'폐쇄됨' ]; } else { @@ -54,6 +64,8 @@ foreach (AppConf::getList() as $setting) { $state = [ 'valid'=>true, 'run'=>true, + 'installed'=>true, + 'version'=>$setting->getVersion(), 'reason'=>'운영중' ]; } @@ -62,6 +74,7 @@ foreach (AppConf::getList() as $setting) { 'name' => $serverDir, 'korName' => $serverKorName, 'color' => $serverColor, + 'isRoot' => $serverDir == $rootServer ]); $server[] = $state; } diff --git a/i_entrance/templates/server_panel.php b/i_entrance/templates/server_panel.php index 7846dc46..6d4133c9 100644 --- a/i_entrance/templates/server_panel.php +++ b/i_entrance/templates/server_panel.php @@ -1,19 +1,21 @@ - + + - - - + + + - + + diff --git a/j_updateServer.php b/j_updateServer.php index 0b2d533f..c5d173a3 100644 --- a/j_updateServer.php +++ b/j_updateServer.php @@ -148,6 +148,7 @@ $result = Util::generateFileUsingSimpleTemplate( ); Json::die([ + 'server'=>$server, 'result'=>true, 'version'=>$version ]); \ No newline at end of file diff --git a/js/admin_server.js b/js/admin_server.js index 3205e444..459aa279 100644 --- a/js/admin_server.js +++ b/js/admin_server.js @@ -1,18 +1,62 @@ var serverAdminTemplate = '\ -\ +\ \ \ + \ \ \ \ - \ + \ \ \ - \ + \ \ '; +function serverUpdate(caller){ + var $caller = $(caller); + var $tr = $caller.parents('tr'); + var server = $tr.data('server_name'); + var isRoot = $tr.data('is_root'); + + var target = 'master'; + + if(typeof isRoot !== 'boolean'){ + isRoot = (isRoot != 'false'); + }; + + if(isRoot){ + if(!confirm('서버 라이브러리, 루트 서버에 대해 git pull을 실행합니다.')){ + return; + } + } + else{ + target = prompt('가져올 git tree-ish 명을 입력해주세요.', target) + if(!target){ + return; + } + + } + + $.ajax({ + type:'post', + url:'../j_updateServer.php', + dataType:'json', + data:{ + server: server, + target: target + } + }).then(function(response) { + if(response.result) { + alert('{0} 서버가 {1} 버전으로 업데이트 되었습니다.'.format(response.server, response.version)); + location.reload(); + } else { + alert(response.reason); + } + } + ); +} function drawServerAdminList(serverList){ var $table = $('#server_admin_list'); @@ -35,6 +79,9 @@ function drawServerAdminList(serverList){ if(!server.valid){ $tr.find('.valid_if_set').css('background','#333333').prop('disabled', true); } + if(!server.installed){ + $tr.find('.valid_if_installed').css('background','#333333').prop('disabled', true); + } }); if(serverList.grade == 5){ $table.find('.only_admin').css('background','#333333').prop('disabled', true); diff --git a/src/sammo/FileTail.php b/src/sammo/FileTail.php new file mode 100644 index 00000000..2e8f481d --- /dev/null +++ b/src/sammo/FileTail.php @@ -0,0 +1,6 @@ +basepath = $basepath; $this->settingFile = realpath($basepath.'/d_setting/DB.php'); $this->htaccessFile = realpath($basepath.'/.htaccess'); + $this->versionFile = realpath($basepath.'/d_setting/VersionGit.php'); $this->korName = $korName; $this->color = $color; @@ -62,6 +65,30 @@ class Setting { public function getSettingFile() { return $this->settingFile; } + + public function getVersion(){ + if($this->version !== null){ + return $this->version; + } + + if(!file_exists($this->versionFile)){ + $this->version = 'noVersionFile'; + return $this->version; + } + + $tail = new FileTail($this->versionFile); + $version = 'noVersionJson'; + foreach ($tail->smart(5, 100, true) as $line) { + if(Util::starts_with($line, '//{')){ + $version = Json::decode(substr($line, 2)); + $version = Util::array_get($version['version'], 'noVersionValue'); + break; + } + } + $this->version = $version; + return $version; + + } }
서 버 관 리
서버 상태버전 명령 선택
<%korName%>(<%name%>)<%status%><%version%>