diff --git a/README.md b/README.md index 61cfbf6..9ab3d52 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ your own risk. download Download an app install Install an app uninstall Uninstall an app + defaults Reset to the default settings ### Missing commands diff --git a/cmd/fdroidcl/defaults.go b/cmd/fdroidcl/defaults.go new file mode 100644 index 0000000..80c32ce --- /dev/null +++ b/cmd/fdroidcl/defaults.go @@ -0,0 +1,41 @@ +// Copyright (c) 2015, Daniel Martí +// See LICENSE for licensing information + +package main + +import ( + "encoding/json" + "log" + "os" +) + +var cmdDefaults = &Command{ + UsageLine: "defaults", + Short: "Reset to the default settings", +} + +func init() { + cmdDefaults.Run = runDefaults +} + +func runDefaults(args []string) { + if len(args) > 0 { + log.Fatalf("No arguments allowed") + } + writeConfig(&config) +} + +func writeConfig(c *userConfig) { + f, err := os.Create(configPath()) + if err != nil { + log.Fatalf("Error when creating config file: %v", err) + } + defer f.Close() + b, err := json.MarshalIndent(c, "", "\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) + } +} diff --git a/cmd/fdroidcl/main.go b/cmd/fdroidcl/main.go index cd67ebb..88b9f3e 100644 --- a/cmd/fdroidcl/main.go +++ b/cmd/fdroidcl/main.go @@ -43,6 +43,10 @@ func mustConfig() string { return subdir(dir, cmdName) } +func configPath() string { + return filepath.Join(mustConfig(), "config.json") +} + type Repo struct { ID string `json:"id"` URL string `json:"url"` @@ -62,24 +66,11 @@ var config = userConfig{ } func readConfig() { - p := filepath.Join(mustConfig(), "config.json") - f, err := os.Open(p) + f, err := os.Open(configPath()) if err != nil { if !os.IsNotExist(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() @@ -161,6 +152,7 @@ var commands = []*Command{ cmdDownload, cmdInstall, cmdUninstall, + cmdDefaults, } func main() {