Fix bug: bad config shouldn't result in overwriting with default. Stop using log.

This commit is contained in:
Andrey Smirnov
2014-01-20 23:38:22 +04:00
parent ce5f277f36
commit f1d892c759
+13 -5
View File
@@ -1,12 +1,12 @@
package main package main
import ( import (
"fmt"
"github.com/gonuts/commander" "github.com/gonuts/commander"
"github.com/gonuts/flag" "github.com/gonuts/flag"
"github.com/smira/aptly/database" "github.com/smira/aptly/database"
"github.com/smira/aptly/debian" "github.com/smira/aptly/debian"
"github.com/smira/aptly/utils" "github.com/smira/aptly/utils"
"log"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@@ -48,10 +48,15 @@ var context struct {
architecturesList []string architecturesList []string
} }
func fatal(err error) {
fmt.Printf("ERROR: %s\n", err)
os.Exit(1)
}
func main() { func main() {
err := cmd.Flag.Parse(os.Args[1:]) err := cmd.Flag.Parse(os.Args[1:])
if err != nil { if err != nil {
log.Fatalf("%s", err) fatal(err)
} }
configLocations := []string{ configLocations := []string{
@@ -64,10 +69,13 @@ func main() {
if err == nil { if err == nil {
break break
} }
if !os.IsNotExist(err) {
fatal(fmt.Errorf("error loading config file %s: %s", configLocation, err))
}
} }
if err != nil { if err != nil {
log.Printf("Config file not found, creating default config at %s\n\n", configLocations[0]) fmt.Printf("Config file not found, creating default config at %s\n\n", configLocations[0])
utils.SaveConfig(configLocations[0], &utils.Config) utils.SaveConfig(configLocations[0], &utils.Config)
} }
@@ -93,7 +101,7 @@ func main() {
context.database, err = database.OpenDB(filepath.Join(utils.Config.RootDir, "db")) context.database, err = database.OpenDB(filepath.Join(utils.Config.RootDir, "db"))
if err != nil { if err != nil {
log.Fatalf("can't open database: %s", err) fatal(fmt.Errorf("can't open database: %s", err))
} }
defer context.database.Close() defer context.database.Close()
@@ -101,6 +109,6 @@ func main() {
err = cmd.Dispatch(cmd.Flag.Args()) err = cmd.Dispatch(cmd.Flag.Args())
if err != nil { if err != nil {
log.Fatalf("%s", err) fatal(err)
} }
} }