package zdaemon import ( "fmt" "git.swzry.com/zry/pathutils" "gopkg.in/yaml.v2" "io/ioutil" "os" "path" "runtime" ) type yamldef_DaemonConfig struct { OS string `yaml:"os"` InstallMode string `yaml:"install_mode"` IsRunning bool `yaml:"is_running"` PID int `yaml:"pid"` IpcAddr string `yaml:"ipc_addr"` } func (zd *ZDaemon) getStatus() { zd.resetStatus() cpath := path.Join(zd.zdaemonPath, "zdaemon.yaml") fe, _ := pathutils.PathExists(cpath) if fe { ydata, err := ioutil.ReadFile(cpath) if err != nil { zd.resetStatus() zd.writeStatus() return } err = yaml.Unmarshal(ydata, zd.daemonConfig) if err != nil { zd.resetStatus() zd.writeStatus() return } } else { zd.resetStatus() zd.writeStatus() return } } func (zd *ZDaemon) resetStatus() { zd.daemonConfig = &yamldef_DaemonConfig{ OS: runtime.GOOS, InstallMode: "free", IsRunning: false, PID: -1, IpcAddr: "", } } func (zd *ZDaemon) writeStatus() { cpath := path.Join(zd.zdaemonPath, "zdaemon.yaml") ydata, err := yaml.Marshal(zd.daemonConfig) if err != nil { fmt.Println("Failed marshal daemon.yaml: ", err.Error()) os.Exit(-1) } err = ioutil.WriteFile(cpath, ydata, 0666) if err != nil { fmt.Println("Failed write daemon.yaml: ", err.Error()) os.Exit(-1) } }