main: Improve logging for initial config loading (ref #4431)

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4436
This commit is contained in:
Simon Frei
2017-10-21 09:00:24 +00:00
committed by Audrius Butkevicius
parent d84b6bb822
commit 20fac4bb80

View File

@@ -449,7 +449,7 @@ func main() {
} }
func openGUI() { func openGUI() {
cfg, _ := loadConfig() cfg, _ := loadOrDefaultConfig()
if cfg.GUI().Enabled { if cfg.GUI().Enabled {
openURL(cfg.GUI().URL()) openURL(cfg.GUI().URL())
} else { } else {
@@ -488,9 +488,7 @@ func generate(generateDir string) {
l.Warnln("Config exists; will not overwrite.") l.Warnln("Config exists; will not overwrite.")
return return
} }
var myName, _ = os.Hostname() var cfg = defaultConfig(cfgFile)
var newCfg = defaultConfig(myName)
var cfg = config.Wrap(cfgFile, newCfg)
err = cfg.Save() err = cfg.Save()
if err != nil { if err != nil {
l.Warnln("Failed to save config", err) l.Warnln("Failed to save config", err)
@@ -520,7 +518,7 @@ func debugFacilities() string {
} }
func checkUpgrade() upgrade.Release { func checkUpgrade() upgrade.Release {
cfg, _ := loadConfig() cfg, _ := loadOrDefaultConfig()
opts := cfg.Options() opts := cfg.Options()
release, err := upgrade.LatestRelease(opts.ReleasesURL, Version, opts.UpgradeToPreReleases) release, err := upgrade.LatestRelease(opts.ReleasesURL, Version, opts.UpgradeToPreReleases)
if err != nil { if err != nil {
@@ -558,7 +556,7 @@ func performUpgrade(release upgrade.Release) {
} }
func upgradeViaRest() error { func upgradeViaRest() error {
cfg, _ := loadConfig() cfg, _ := loadOrDefaultConfig()
u, err := url.Parse(cfg.GUI().URL()) u, err := url.Parse(cfg.GUI().URL())
if err != nil { if err != nil {
return err return err
@@ -663,7 +661,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
"myID": myID.String(), "myID": myID.String(),
}) })
cfg := loadOrCreateConfig() cfg := loadConfigAtStartup()
if err := checkShortIDs(cfg); err != nil { if err := checkShortIDs(cfg); err != nil {
l.Fatalln("Short device IDs are in conflict. Unlucky!\n Regenerate the device ID of one of the following:\n ", err) l.Fatalln("Short device IDs are in conflict. Unlucky!\n Regenerate the device ID of one of the following:\n ", err)
@@ -965,26 +963,28 @@ func setupSignalHandling() {
}() }()
} }
func loadConfig() (*config.Wrapper, error) { func loadOrDefaultConfig() (*config.Wrapper, error) {
cfgFile := locations[locConfigFile] cfgFile := locations[locConfigFile]
cfg, err := config.Load(cfgFile, myID) cfg, err := config.Load(cfgFile, myID)
if err != nil { if err != nil {
myName, _ := os.Hostname() cfg = defaultConfig(cfgFile)
newCfg := defaultConfig(myName)
cfg = config.Wrap(cfgFile, newCfg)
} }
return cfg, err return cfg, err
} }
func loadOrCreateConfig() *config.Wrapper { func loadConfigAtStartup() *config.Wrapper {
cfg, err := loadConfig() cfgFile := locations[locConfigFile]
cfg, err := config.Load(cfgFile, myID)
if os.IsNotExist(err) { if os.IsNotExist(err) {
cfg := defaultConfig(cfgFile)
cfg.Save() cfg.Save()
l.Infof("Defaults saved. Edit %s to taste or use the GUI\n", cfg.ConfigPath()) l.Infof("Default config saved. Edit %s to taste or use the GUI\n", cfg.ConfigPath())
} else if err == io.EOF {
l.Fatalln("Failed to load config: unexpected end of file. Truncated or empty configuration?")
} else if err != nil { } else if err != nil {
l.Fatalln("Config:", err) l.Fatalln("Failed to load config:", err)
} }
if cfg.RawCopy().OriginalVersion != config.CurrentVersion { if cfg.RawCopy().OriginalVersion != config.CurrentVersion {
@@ -1087,7 +1087,9 @@ func setupGUI(mainService *suture.Supervisor, cfg *config.Wrapper, m *model.Mode
} }
} }
func defaultConfig(myName string) config.Configuration { func defaultConfig(cfgFile string) *config.Wrapper {
myName, _ := os.Hostname()
var defaultFolder config.FolderConfiguration var defaultFolder config.FolderConfiguration
if !noDefaultFolder { if !noDefaultFolder {
@@ -1132,7 +1134,7 @@ func defaultConfig(myName string) config.Configuration {
} }
} }
return newCfg return config.Wrap(cfgFile, newCfg)
} }
func resetDB() error { func resetDB() error {