diff --git a/app/console/commands/panel.go b/app/console/commands/panel.go index e8b9eef5..95b12e35 100644 --- a/app/console/commands/panel.go +++ b/app/console/commands/panel.go @@ -1,6 +1,7 @@ package commands import ( + "fmt" "os" "path/filepath" "sort" @@ -55,7 +56,7 @@ func (receiver *Panel) Handle(ctx console.Context) error { return nil } - settings := []models.Setting{{Key: models.SettingKeyName, Value: "耗子Linux面板"}, {Key: models.SettingKeyMonitor, Value: "1"}, {Key: models.SettingKeyMonitorDays, Value: "30"}, {Key: models.SettingKeyBackupPath, Value: "/www/backup"}, {Key: models.SettingKeyWebsitePath, Value: "/www/wwwroot"}, {Key: models.SettingKeyEntrance, Value: "/"}} + settings := []models.Setting{{Key: models.SettingKeyName, Value: "耗子Linux面板"}, {Key: models.SettingKeyMonitor, Value: "1"}, {Key: models.SettingKeyMonitorDays, Value: "30"}, {Key: models.SettingKeyBackupPath, Value: "/www/backup"}, {Key: models.SettingKeyWebsitePath, Value: "/www/wwwroot"}, {Key: models.SettingKeyEntrance, Value: "/"}, {Key: models.SettingKeyVersion, Value: facades.Config().GetString("panel.version")}} err = facades.Orm().Query().Create(&settings) if err != nil { color.Redln("初始化失败") @@ -457,6 +458,20 @@ func (receiver *Panel) Handle(ctx console.Context) error { color.Greenln("写入设置成功") + case "getSetting": + key := arg1 + if len(key) == 0 { + color.Redln("参数错误") + return nil + } + + var setting models.Setting + if err := facades.Orm().Query().Where("key", key).FirstOrFail(&setting); err != nil { + return nil + } + + fmt.Printf("%s", setting.Value) + case "deleteSetting": key := arg1 if len(key) == 0 { @@ -490,6 +505,7 @@ func (receiver *Panel) Handle(ctx console.Context) error { color.Yellowln("panel writeMysqlPassword {password} 写入MySQL root密码") color.Yellowln("panel writeSite {name} {status} {path} {php} {ssl} 写入网站数据到面板") color.Yellowln("panel deleteSite {name} 删除面板网站数据") + color.Yellowln("panel getSetting {name} 获取面板设置数据") color.Yellowln("panel writeSetting {name} {value} 写入 / 更新面板设置数据") color.Yellowln("panel deleteSetting {name} 删除面板设置数据") } diff --git a/app/models/setting.go b/app/models/setting.go index fe39103e..bc07fb2d 100644 --- a/app/models/setting.go +++ b/app/models/setting.go @@ -4,6 +4,7 @@ import "github.com/goravel/framework/support/carbon" const ( SettingKeyName = "name" + SettingKeyVersion = "version" SettingKeyMonitor = "monitor" SettingKeyMonitorDays = "monitor_days" SettingKeyBackupPath = "backup_path" diff --git a/pkg/tools/tools.go b/pkg/tools/tools.go index f7357cf1..411d32d0 100644 --- a/pkg/tools/tools.go +++ b/pkg/tools/tools.go @@ -147,7 +147,7 @@ func UpdatePanel(proxy bool) error { color.Greenln("下载完成") color.Greenln("更新新版本...") - ExecShell("cd /www/panel && unzip -o panel.zip && rm -rf panel.zip && chmod 700 panel") + ExecShell("cd /www/panel && unzip -o panel.zip && rm -rf panel.zip && chmod 700 panel && bash scripts/update_panel.sh") color.Greenln("更新完成") color.Greenln("恢复面板配置...") @@ -159,6 +159,8 @@ func UpdatePanel(proxy bool) error { ExecShell("/www/panel/panel --env=panel.conf artisan migrate") color.Greenln("恢复完成") + ExecShell("panel writeSetting version " + panelInfo.Version) + color.Greenln("重启面板...") ExecShell("systemctl restart panel") color.Greenln("重启完成") diff --git a/scripts/update_panel.sh b/scripts/update_panel.sh new file mode 100644 index 00000000..77c09717 --- /dev/null +++ b/scripts/update_panel.sh @@ -0,0 +1,21 @@ +#!/bin/bash +export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH + +: ' +Copyright 2022 HaoZi Technology Co., Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +' + +HR="+----------------------------------------------------" +OldVersion=$(panel getSetting version)