Support for config file in any file.

This commit is contained in:
Andrey Smirnov
2014-02-07 19:59:26 +04:00
parent 610940ae5d
commit 66d1f40a49
+26 -16
View File
@@ -39,6 +39,7 @@ take snapshots and publish them back as Debian repositories.`,
cmd.Flag.Bool("dep-follow-recommends", false, "when processing dependencies, follow Recommends") cmd.Flag.Bool("dep-follow-recommends", false, "when processing dependencies, follow Recommends")
cmd.Flag.Bool("dep-follow-all-variants", false, "when processing dependencies, follow a & b if depdency is 'a|b'") cmd.Flag.Bool("dep-follow-all-variants", false, "when processing dependencies, follow a & b if depdency is 'a|b'")
cmd.Flag.String("architectures", "", "list of architectures to consider during (comma-separated), default to all available") cmd.Flag.String("architectures", "", "list of architectures to consider during (comma-separated), default to all available")
cmd.Flag.String("config", "", "location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)")
} }
var context struct { var context struct {
@@ -60,24 +61,33 @@ func main() {
fatal(err) fatal(err)
} }
configLocations := []string{ configLocation := cmd.Flag.Lookup("config").Value.String()
filepath.Join(os.Getenv("HOME"), ".aptly.conf"), if configLocation != "" {
"/etc/aptly.conf",
}
for _, configLocation := range configLocations {
err = utils.LoadConfig(configLocation, &utils.Config) err = utils.LoadConfig(configLocation, &utils.Config)
if err == nil {
break
}
if !os.IsNotExist(err) {
fatal(fmt.Errorf("error loading config file %s: %s", configLocation, err))
}
}
if err != nil { if err != nil {
fmt.Printf("Config file not found, creating default config at %s\n\n", configLocations[0]) fatal(err)
utils.SaveConfig(configLocations[0], &utils.Config) }
} else {
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 !os.IsNotExist(err) {
fatal(fmt.Errorf("error loading config file %s: %s", configLocation, err))
}
}
if err != nil {
fmt.Printf("Config file not found, creating default config at %s\n\n", configLocations[0])
utils.SaveConfig(configLocations[0], &utils.Config)
}
} }
context.dependencyOptions = 0 context.dependencyOptions = 0