From 6906b3094b8479823713314a93c8595a6c112e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 30 Oct 2022 20:07:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0edge-api=20reset=E5=91=BD?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/edge-api/main.go | 9 +++++++ internal/configs/api_config.go | 44 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/cmd/edge-api/main.go b/cmd/edge-api/main.go index 534ef7ea..711a26f7 100644 --- a/cmd/edge-api/main.go +++ b/cmd/edge-api/main.go @@ -5,6 +5,7 @@ import ( "flag" "fmt" "github.com/TeaOSLab/EdgeAPI/internal/apps" + "github.com/TeaOSLab/EdgeAPI/internal/configs" teaconst "github.com/TeaOSLab/EdgeAPI/internal/const" "github.com/TeaOSLab/EdgeAPI/internal/nodes" "github.com/TeaOSLab/EdgeAPI/internal/setup" @@ -71,6 +72,14 @@ func main() { } 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.On("goman", func() { var sock = gosock.NewTmpSock(teaconst.ProcessName) reply, err := sock.Send(&gosock.Command{Code: "goman"}) diff --git a/internal/configs/api_config.go b/internal/configs/api_config.go index 34805b17..0712ecc2 100644 --- a/internal/configs/api_config.go +++ b/internal/configs/api_config.go @@ -132,3 +132,47 @@ func (this *APIConfig) WriteFile(path string) error { return os.WriteFile(path, data, 0666) } + +// ResetAPIConfig 重置配置 +func ResetAPIConfig() error { + for _, filename := range []string{"api.yaml", "db.yaml"} { + // 重置 configs/api.yaml + { + var configFile = Tea.ConfigFile(filename) + stat, err := os.Stat(configFile) + if err == nil && !stat.IsDir() { + err = os.Remove(configFile) + if err != nil { + return err + } + } + } + + // 重置 ~/.edge-api/api.yaml + homeDir, homeErr := os.UserHomeDir() + if homeErr == nil { + var 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-api/api.yaml + { + var 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 +}