|
@@ -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 newCfg = defaultConfig(myName)
|
|
|
|
|
- var cfg = config.Wrap(cfgFile, newCfg)
|
|
|
|
|
|
|
+ var cfg = defaultConfig(cfgFile)
|
|
|
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()
|
|
|
|
|
- newCfg := defaultConfig(myName)
|
|
|
|
|
- cfg = config.Wrap(cfgFile, newCfg)
|
|
|
|
|
|
|
+ cfg = defaultConfig(cfgFile)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return cfg, err
|
|
return cfg, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func loadOrCreateConfig() *config.Wrapper {
|
|
|
|
|
- cfg, err := loadConfig()
|
|
|
|
|
|
|
+func loadConfigAtStartup() *config.Wrapper {
|
|
|
|
|
+ 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 {
|