Browse Source

adding backup function

afeiszli 2 years ago
parent
commit
2865089ff0
1 changed files with 26 additions and 12 deletions
  1. 26 12
      netclient/config/config.go

+ 26 - 12
netclient/config/config.go

@@ -95,28 +95,42 @@ func (config *ClientConfig) ConfigFileExists() bool {
 // ClientConfig.ReadConfig - used to read config from client disk into memory
 func (config *ClientConfig) ReadConfig() {
 
-	nofile := false
+	network := config.Network
+	if network == "" {
+		return
+	}
+
 	//home, err := homedir.Dir()
 	home := ncutils.GetNetclientPathSpecific()
 
-	file := fmt.Sprintf(home + "netconfig-" + config.Network)
+	file := fmt.Sprintf(home + "netconfig-" + network)
 	//f, err := os.Open(file)
 	f, err := os.OpenFile(file, os.O_RDONLY, 0600)
 	if err != nil {
 		logger.Log(1, "trouble opening file: ", err.Error())
-		nofile = true
-		//fmt.Println("Could not access " + home + "/.netconfig,  proceeding...")
+		if err = ReplaceWithBackup(network); err != nil {
+			log.Fatal(err)
+		}
+		f.Close()
+		f, err = os.Open(file)
+		if err != nil {
+			log.Fatal(err)
+		}
+
 	}
 	defer f.Close()
-
-	//var cfg ClientConfig
-
-	if !nofile {
-		decoder := yaml.NewDecoder(f)
-		err = decoder.Decode(&config)
+	if err := yaml.NewDecoder(f).Decode(&config); err != nil {
+		logger.Log(0, "no config or invalid, replacing with backup")
+		if err = ReplaceWithBackup(network); err != nil {
+			log.Fatal(err)
+		}
+		f.Close()
+		f, err = os.Open(file)
 		if err != nil {
-			fmt.Println("no config or invalid")
-			fmt.Println(err)
+			log.Fatal(err)
+		}
+		defer f.Close()
+		if err := yaml.NewDecoder(f).Decode(&config); err != nil {
 			log.Fatal(err)
 		}
 	}