From 5bddfffd90318297d382825da384daeeb9e78a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Fri, 17 Jul 2015 23:43:01 -0700 Subject: [PATCH] Write config file with defaults if it doesn't exist --- cmd/fdroidcl/main.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cmd/fdroidcl/main.go b/cmd/fdroidcl/main.go index cdad79c..16d956c 100644 --- a/cmd/fdroidcl/main.go +++ b/cmd/fdroidcl/main.go @@ -66,14 +66,26 @@ func readConfig() { p := filepath.Join(mustConfig(), "config.json") f, err := os.Open(p) if err != nil { - if os.IsNotExist(err) { - return + if !os.IsNotExist(err) { + log.Fatalf("Error when opening config file: %v", err) } - log.Fatalf("Error when opening config file: %v", err) + f, err := os.Create(p) + if err != nil { + log.Fatalf("Error when creating config file: %v", err) + } + defer f.Close() + b, err := json.MarshalIndent(&config, "", "\t") + if err != nil { + log.Fatalf("Error when encoding config file: %v", err) + } + if _, err := f.Write(b); err != nil { + log.Fatalf("Error when writing config file: %v", err) + } + return } defer f.Close() if err := json.NewDecoder(f).Decode(&config); err != nil { - log.Fatalf("Error when parsing config file: %v", err) + log.Fatalf("Error when decoding config file: %v", err) } }