From 19748c3c92b53d5b9c25ecdd376f098bfd5a2afd Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Fri, 27 Dec 2013 19:31:45 +0400 Subject: [PATCH] Config file initialization, using options. --- main.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index fd9e1e60..82d87bc7 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "github.com/smira/aptly/utils" "log" "os" + "path/filepath" ) var cmd *commander.Command @@ -41,18 +42,35 @@ func main() { log.Fatalf("%s", err) } - context.downloader = utils.NewDownloader(4) + configLocations := []string{ + filepath.Join(os.Getenv("HOME"), ".aptly.conf"), + "/etc/aptly.conf", + } + + for _, configLocation := range configLocations { + err = utils.LoadConfig(configLocation, &utils.Config) + if err == nil { + break + } + } + + if err != nil { + log.Printf("Config file not found, creating default config at %s\n\n", configLocations[0]) + utils.SaveConfig(configLocations[0], &utils.Config) + } + + context.downloader = utils.NewDownloader(utils.Config.DownloadConcurrency) defer context.downloader.Shutdown() // TODO: configure DB dir - context.database, err = database.OpenDB("/var/aptly/db") + context.database, err = database.OpenDB(filepath.Join(utils.Config.RootDir, "db")) if err != nil { log.Fatalf("can't open database: %s", err) } defer context.database.Close() // TODO:configure pool dir - context.packageRepository = debian.NewRepository("/var/aptly") + context.packageRepository = debian.NewRepository(utils.Config.RootDir) err = cmd.Dispatch(os.Args[1:]) if err != nil {