From d9659e24ff47a0fbdcf764b5dfeda41822b97e04 Mon Sep 17 00:00:00 2001
From: witersen <1801168257@qq.com>
Date: Mon, 9 May 2022 01:24:50 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8D=87=E7=BA=A7=E7=A8=8B?=
=?UTF-8?q?=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
02.php/config/update.php | 7 +--
02.php/server/install.php | 95 +++++++++++++++++++++----------------
02.php/server/svnadmind.php | 37 +--------------
02.php/server/update.json | 23 ++++-----
4 files changed, 72 insertions(+), 90 deletions(-)
diff --git a/02.php/config/update.php b/02.php/config/update.php
index 1f3e71e..b200df5 100644
--- a/02.php/config/update.php
+++ b/02.php/config/update.php
@@ -3,7 +3,7 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:06
* @LastEditors: witersen
- * @LastEditTime: 2022-05-08 15:18:04
+ * @LastEditTime: 2022-05-09 00:26:12
* @Description: QQ:1801168257
*/
@@ -12,7 +12,8 @@
*/
return [
'update_server' => [
- 'https://gitee.com/witersen/update/raw/master/SvnAdmin/update2.json',
- 'https://raw.githubusercontent.com/witersen/update/master/SvnAdmin/update2.json'
+ // 'https://gitee.com/witersen/update/raw/master/SvnAdmin/update2.json',
+ // 'https://raw.githubusercontent.com/witersen/update/master/SvnAdmin/update2.json',
+ 'http://dev.witersen.com/server/update.json'
]
];
diff --git a/02.php/server/install.php b/02.php/server/install.php
index ceb53fa..64460c9 100644
--- a/02.php/server/install.php
+++ b/02.php/server/install.php
@@ -3,7 +3,7 @@
* @Author: witersen
* @Date: 2022-05-08 13:31:07
* @LastEditors: witersen
- * @LastEditTime: 2022-05-08 23:48:45
+ * @LastEditTime: 2022-05-09 01:23:06
* @Description: QQ:1801168257
*/
@@ -63,6 +63,7 @@ class Install
$this->config_update = Config::get('update');
$this->config_version = Config::get('version');
}
+
/**
* 检测SVNAdmin的新版本并选择更新
*/
@@ -73,29 +74,57 @@ class Install
//获取当前版本可升级的版本信息
foreach ($this->config_update['update_server'] as $value) {
- //检测
- $versionInfo = FunCurlRequest($value);
- //未超时
- if ($versionInfo != null) {
- //json转换
- $versionInfo = json_decode($versionInfo, true);
- $latestVersion = $versionInfo['latestVersion'];
- if ($latestVersion == $this->config_version['version']) {
- return message(200, 1, '当前版本为最新版');
- } else if ($latestVersion > $this->config_version['version']) {
- return message(200, 1, '有更新', [
- 'latestVersion' => $versionInfo['latestVersion'],
- 'fixedContent' => implode('
', $versionInfo['fixedContent']) == '' ? '暂无内容' : implode('
', $versionInfo['fixedContent']),
- 'newContent' => implode('
', $versionInfo['newContent']) == '' ? '暂无内容' : implode('
', $versionInfo['newContent']),
- 'updateType' => $versionInfo['updateType'],
- 'updateStep' => $versionInfo['updateStep']
- ]);
- } else if ($latestVersion < $this->config_version['version']) {
- return message(200, 0, '系统版本错误');
+
+ $result = FunCurlRequest($value);
+
+ if ($result == null) {
+ echo '节点访问超时,切换下一节点' . PHP_EOL;
+ continue;
+ }
+
+ //json转换
+ $result = json_decode($result, true);
+
+ $version = $result['version'];
+ if ($this->config_version['version'] == $version) {
+ exit('当前为最新版:' . $version . PHP_EOL);
+ }
+ if ($this->config_version['version'] < $version) {
+ echo '有新版本:' . $version . PHP_EOL;
+
+ echo '修复内容如下:' . PHP_EOL;
+ foreach ($result['fixd']['con'] as $value) {
+ echo ' [' . $value['title'] . ']' . ' ' . $value['content'] . PHP_EOL;
+ }
+
+ echo '新增内容如下:' . PHP_EOL;
+ foreach ($result['add']['con'] as $value) {
+ echo ' [' . $value['title'] . ']' . ' ' . $value['content'] . PHP_EOL;
}
+
+ echo '移除内容如下:' . PHP_EOL;
+ foreach ($result['remove']['con'] as $value) {
+ echo ' [' . $value['title'] . ']' . ' ' . $value['content'] . PHP_EOL;
+ }
+
+ echo "确定要升级到 $version 版本吗[y/n]:";
+
+ $answer = strtolower(trim(fgets(STDIN)));
+
+ if (!in_array($answer, ['y', 'n'])) {
+ exit('不正确的选项!' . PHP_EOL);
+ }
+
+ if ($answer == 'n') {
+ exit('已取消!' . PHP_EOL);
+ }
+
+ //下载并执行升级脚本
+
+
+ echo '===============================================' . PHP_EOL;
}
}
- return message(200, 0, '检测更新超时');
}
/**
@@ -133,13 +162,6 @@ class Install
{
}
- /**
- * 获取当前安装的Subversion信息
- */
- function DetectSubversion()
- {
- }
-
/**
* 修改已经安装的Subversion配置以适合SVNAdmin的管理
*/
@@ -181,6 +203,8 @@ class Install
*/
$templete_path = BASE_PATH . '../templete/';
+ echo '创建相关目录' . PHP_EOL;
+
//创建SVNAdmin软件配置信息的主目录
mkdir($this->config_svn['home_path'], 0700, true);
@@ -196,6 +220,8 @@ class Install
//创建临时数据目录
mkdir($this->config_svn['home_path'], 0700, true);
+ echo '创建相关文件' . PHP_EOL;
+
//写入svnserve环境变量文件
$con_svnserve_env_file = file_get_contents($templete_path . 'svnserve/svnserve');
$con_svnserve_env_file = sprintf($con_svnserve_env_file, $this->config_svn['rep_base_path'], $this->config_svn['svn_conf_file'], $this->config_svn['svnserve_log_file']);
@@ -222,41 +248,29 @@ class Install
/**
* 将svnserve注册为系统服务
*/
- echo '===============================================' . PHP_EOL;
echo '清理之前注册的svnserve服务' . PHP_EOL;
shell_exec('systemctl stop svnserve.service');
shell_exec('systemctl disable svnserve.service');
- echo '===============================================' . PHP_EOL;
-
$con_svnserve_service_file = file_get_contents($templete_path . 'svnserve/svnserve.service');
$con_svnserve_service_file = sprintf($con_svnserve_service_file, $this->config_svn['svnserve_env_file'], trim($installPath), $this->config_svn['svnserve_pid_file']);
file_put_contents($this->config_svn['svnserve_service_file'], $con_svnserve_service_file);
//启动
- echo '===============================================' . PHP_EOL;
echo '开始启动svnserve服务' . PHP_EOL;
passthru('systemctl start svnserve');
- echo '===============================================' . PHP_EOL;
-
//开机自启动
- echo '===============================================' . PHP_EOL;
echo '将svnserve服务加入到开机自启动' . PHP_EOL;
passthru('systemctl enable svnserve');
- echo '===============================================' . PHP_EOL;
-
//查看状态
- echo '===============================================' . PHP_EOL;
echo 'svnserve安装成功,打印运行状态:' . PHP_EOL;
passthru('systemctl status svnserve');
-
- echo '===============================================' . PHP_EOL;
}
/**
@@ -334,6 +348,7 @@ class Install
$this->ConfigSubversion();
} else if ($answer == 3) {
//检测SVNAdmin的新版本
+ $this->DetectUpdate();
}
}
}
diff --git a/02.php/server/svnadmind.php b/02.php/server/svnadmind.php
index fd360c5..4c1bd9a 100644
--- a/02.php/server/svnadmind.php
+++ b/02.php/server/svnadmind.php
@@ -3,7 +3,7 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:06
* @LastEditors: witersen
- * @LastEditTime: 2022-05-08 21:45:35
+ * @LastEditTime: 2022-05-09 00:00:19
* @Description: QQ:1801168257
*/
@@ -229,41 +229,6 @@ class Daemon
file_put_contents(BASE_PATH . '/../config/sign.php', $signCon);
}
- /**
- * 检测升级
- */
- private function SelectUpdate()
- {
- }
-
- /**
- * 升级到指定版本
- */
- private function Update()
- {
- }
-
- /**
- * 安装SVNAdmin
- */
- private function InstallSVNAdmin()
- {
- }
-
- /**
- * 安装Subversion
- */
- private function InstallSubversion()
- {
- }
-
- /**
- * 初始化Subversion
- */
- private function InitSubversion()
- {
- }
-
/**
* 以守护进程模式工作
*/
diff --git a/02.php/server/update.json b/02.php/server/update.json
index 185cb17..410a74a 100644
--- a/02.php/server/update.json
+++ b/02.php/server/update.json
@@ -1,6 +1,5 @@
{
- "version": "2.3",
- "number": 8,
+ "version": "2.4",
"fixd": {
"con": [
{
@@ -50,11 +49,6 @@
]
},
"update": {
- "rely": {
- "version": {
- "SVNAdmin": []
- }
- },
"step": [
{
"title": "1",
@@ -65,17 +59,24 @@
"download": [
{
"nodeName": "gitee.com",
- "releaseUrl": ""
+ "package": ""
},
{
"nodeName": "github.com",
- "releaseUrl": ""
+ "package": ""
},
{
"nodeName": "witersen.com",
- "releaseUrl": "https://download.witersen.com/SVNAdmin/SVNAdmin-2.3.zip"
+ "package": "https://download.witersen.com/SVNAdmin/SVNAdmin-2.3.zip"
}
]
- }
+ },
+ "update": [
+ {
+ "source": "2.3",
+ "dest": "2.4",
+ "package": ""
+ }
+ ]
}
}
\ No newline at end of file