Browse Source

Don't always write default config, do it via defaults

pull/8/head
Daniel Martí 11 years ago
parent
commit
97e3b1a5cf
  1. 1
      README.md
  2. 41
      cmd/fdroidcl/defaults.go
  3. 20
      cmd/fdroidcl/main.go

1
README.md

@ -20,6 +20,7 @@ your own risk.
download <appid...> Download an app
install <appid...> Install an app
uninstall <appid...> Uninstall an app
defaults Reset to the default settings
### Missing commands

41
cmd/fdroidcl/defaults.go

@ -0,0 +1,41 @@
// Copyright (c) 2015, Daniel Martí <mvdan@mvdan.cc>
// 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)
}
}

20
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() {

Loading…
Cancel
Save