增加edge-admin reset命令,用来清理对应的配置

This commit is contained in:
GoEdgeLab
2021-05-13 14:27:17 +08:00
parent dddd00546a
commit 72e6502473
3 changed files with 62 additions and 2 deletions

View File

@@ -6,3 +6,4 @@
./build.sh linux mips64 ./build.sh linux mips64
./build.sh linux mips64le ./build.sh linux mips64le
./build.sh darwin amd64 ./build.sh darwin amd64
./build.sh darwin arm64

View File

@@ -3,6 +3,7 @@ package main
import ( import (
"fmt" "fmt"
"github.com/TeaOSLab/EdgeAdmin/internal/apps" "github.com/TeaOSLab/EdgeAdmin/internal/apps"
"github.com/TeaOSLab/EdgeAdmin/internal/configs"
teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const" teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const"
"github.com/TeaOSLab/EdgeAdmin/internal/nodes" "github.com/TeaOSLab/EdgeAdmin/internal/nodes"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web" _ "github.com/TeaOSLab/EdgeAdmin/internal/web"
@@ -13,7 +14,14 @@ func main() {
app := apps.NewAppCmd(). app := apps.NewAppCmd().
Version(teaconst.Version). Version(teaconst.Version).
Product(teaconst.ProductName). Product(teaconst.ProductName).
Usage(teaconst.ProcessName + " [-v|start|stop|restart|service|daemon]") Usage(teaconst.ProcessName+" [-v|start|stop|restart|service|daemon|reset]").
Option("-h", "show this help").
Option("-v", "show version").
Option("start", "start the service").
Option("stop", "stop the service").
Option("service", "register service into systemd").
Option("daemon", "start the service with daemon").
Option("reset", "reset configs")
app.On("daemon", func() { app.On("daemon", func() {
nodes.NewAdminNode().Daemon() nodes.NewAdminNode().Daemon()
@@ -26,6 +34,14 @@ func main() {
} }
fmt.Println("done") fmt.Println("done")
}) })
app.On("reset", func() {
err := configs.ResetAPIConfig()
if err != nil {
fmt.Println("[ERROR]reset failed: " + err.Error())
return
}
fmt.Println("done")
})
app.Run(func() { app.Run(func() {
adminNode := nodes.NewAdminNode() adminNode := nodes.NewAdminNode()
adminNode.Run() adminNode.Run()

View File

@@ -59,6 +59,49 @@ func LoadAPIConfig() (*APIConfig, error) {
return config, nil return config, nil
} }
// ResetAPIConfig 重置配置
func ResetAPIConfig() error {
filename := "api.yaml"
{
configFile := Tea.ConfigFile(filename)
stat, err := os.Stat(configFile)
if err == nil && !stat.IsDir() {
err = os.Remove(configFile)
if err != nil {
return err
}
}
}
// 重置 ~/.edge-admin/api.yaml
homeDir, homeErr := os.UserHomeDir()
if homeErr == nil {
configFile := homeDir + "/." + teaconst.ProcessName + "/" + filename
stat, err := os.Stat(configFile)
if err == nil && !stat.IsDir() {
err = os.Remove(configFile)
if err != nil {
return err
}
}
}
// 重置 /etc/edge-admin/api.yaml
{
configFile := "/etc/" + teaconst.ProcessName + "/" + filename
stat, err := os.Stat(configFile)
if err == nil && !stat.IsDir() {
err = os.Remove(configFile)
if err != nil {
return err
}
}
}
return nil
}
// WriteFile 写入API配置 // WriteFile 写入API配置
func (this *APIConfig) WriteFile(path string) error { func (this *APIConfig) WriteFile(path string) error {
data, err := yaml.Marshal(this) data, err := yaml.Marshal(this)
@@ -84,7 +127,7 @@ func (this *APIConfig) WriteFile(path string) error {
} }
} }
// 写入 /etc/.edge-admin // 写入 /etc/edge-admin
{ {
dir := "/etc/" + teaconst.ProcessName dir := "/etc/" + teaconst.ProcessName
stat, err := os.Stat(dir) stat, err := os.Stat(dir)