diff --git a/cmd/syncthing/generate/generate.go b/cmd/syncthing/generate/generate.go index 0d3479c22..f9d9814f0 100644 --- a/cmd/syncthing/generate/generate.go +++ b/cmd/syncthing/generate/generate.go @@ -24,10 +24,9 @@ import ( ) type CLI struct { - GUIUser string `placeholder:"STRING" help:"Specify new GUI authentication user name"` - GUIPassword string `placeholder:"STRING" help:"Specify new GUI authentication password (use - to read from standard input)"` - NoDefaultFolder bool `help:"Don't create the \"default\" folder on first startup" env:"STNODEFAULTFOLDER"` - NoPortProbing bool `help:"Don't try to find free ports for GUI and listen addresses on first startup" env:"STNOPORTPROBING"` + GUIUser string `placeholder:"STRING" help:"Specify new GUI authentication user name"` + GUIPassword string `placeholder:"STRING" help:"Specify new GUI authentication password (use - to read from standard input)"` + NoPortProbing bool `help:"Don't try to find free ports for GUI and listen addresses on first startup" env:"STNOPORTPROBING"` } func (c *CLI) Run(l logger.Logger) error { @@ -41,13 +40,13 @@ func (c *CLI) Run(l logger.Logger) error { c.GUIPassword = string(password) } - if err := Generate(l, locations.GetBaseDir(locations.ConfigBaseDir), c.GUIUser, c.GUIPassword, c.NoDefaultFolder, c.NoPortProbing); err != nil { + if err := Generate(l, locations.GetBaseDir(locations.ConfigBaseDir), c.GUIUser, c.GUIPassword, c.NoPortProbing); err != nil { return fmt.Errorf("failed to generate config and keys: %w", err) } return nil } -func Generate(l logger.Logger, confDir, guiUser, guiPassword string, noDefaultFolder, skipPortProbing bool) error { +func Generate(l logger.Logger, confDir, guiUser, guiPassword string, skipPortProbing bool) error { dir, err := fs.ExpandTilde(confDir) if err != nil { return err @@ -75,7 +74,7 @@ func Generate(l logger.Logger, confDir, guiUser, guiPassword string, noDefaultFo cfgFile := locations.Get(locations.ConfigFile) cfg, _, err := config.Load(cfgFile, myID, events.NoopLogger) if fs.IsNotExist(err) { - if cfg, err = syncthing.DefaultConfig(cfgFile, myID, events.NoopLogger, noDefaultFolder, skipPortProbing); err != nil { + if cfg, err = syncthing.DefaultConfig(cfgFile, myID, events.NoopLogger, skipPortProbing); err != nil { return fmt.Errorf("create config: %w", err) } } else if err != nil { diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index d666377c5..9968fbfc1 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -172,7 +172,6 @@ type serveCmd struct { LogMaxFiles int `name:"log-max-old-files" help:"Number of old files to keep (zero to keep only current)" default:"${logMaxFiles}" placeholder:"N" env:"STLOGMAXOLDFILES"` LogMaxSize int `help:"Maximum size of any file (zero to disable log rotation)" default:"${logMaxSize}" placeholder:"BYTES" env:"STLOGMAXSIZE"` NoBrowser bool `help:"Do not start browser" env:"STNOBROWSER"` - NoDefaultFolder bool `help:"Don't create the \"default\" folder on first startup" env:"STNODEFAULTFOLDER"` NoPortProbing bool `help:"Don't try to find free ports for GUI and listen addresses on first startup" env:"STNOPORTPROBING"` NoRestart bool `help:"Do not restart Syncthing when exiting due to API/GUI command, upgrade, or crash" env:"STNORESTART"` NoUpgrade bool `help:"Disable automatic upgrades" env:"STNOUPGRADE"` @@ -463,7 +462,7 @@ func (c *serveCmd) syncthingMain() { evLogger := events.NewLogger() earlyService.Add(evLogger) - cfgWrapper, err := syncthing.LoadConfigAtStartup(locations.Get(locations.ConfigFile), cert, evLogger, c.AllowNewerConfig, c.NoDefaultFolder, c.NoPortProbing) + cfgWrapper, err := syncthing.LoadConfigAtStartup(locations.Get(locations.ConfigFile), cert, evLogger, c.AllowNewerConfig, c.NoPortProbing) if err != nil { l.Warnln("Failed to initialize config:", err) os.Exit(svcutil.ExitError.AsInt()) diff --git a/lib/syncthing/utils.go b/lib/syncthing/utils.go index 25ed23034..e471a2403 100644 --- a/lib/syncthing/utils.go +++ b/lib/syncthing/utils.go @@ -65,7 +65,7 @@ func GenerateCertificate(certFile, keyFile string) (tls.Certificate, error) { return tlsutil.NewCertificate(certFile, keyFile, tlsDefaultCommonName, deviceCertLifetimeDays) } -func DefaultConfig(path string, myID protocol.DeviceID, evLogger events.Logger, noDefaultFolder, skipPortProbing bool) (config.Wrapper, error) { +func DefaultConfig(path string, myID protocol.DeviceID, evLogger events.Logger, skipPortProbing bool) (config.Wrapper, error) { newCfg := config.New(myID) if skipPortProbing { @@ -76,30 +76,18 @@ func DefaultConfig(path string, myID protocol.DeviceID, evLogger events.Logger, return nil, err } - if noDefaultFolder { - l.Infoln("We will skip creation of a default folder on first start") - return config.Wrap(path, newCfg, myID, evLogger), nil - } - - fcfg := newCfg.Defaults.Folder.Copy() - fcfg.ID = "default" - fcfg.Label = "Default Folder" - fcfg.FilesystemType = config.FilesystemTypeBasic - fcfg.Path = locations.Get(locations.DefFolder) - newCfg.Folders = append(newCfg.Folders, fcfg) - l.Infoln("Default folder created and/or linked to new config") return config.Wrap(path, newCfg, myID, evLogger), nil } // LoadConfigAtStartup loads an existing config. If it doesn't yet exist, it -// creates a default one, without the default folder if noDefaultFolder is true. -// Otherwise it checks the version, and archives and upgrades the config if -// necessary or returns an error, if the version isn't compatible. -func LoadConfigAtStartup(path string, cert tls.Certificate, evLogger events.Logger, allowNewerConfig, noDefaultFolder, skipPortProbing bool) (config.Wrapper, error) { +// creates a default one. Otherwise it checks the version, and archives and +// upgrades the config if necessary or returns an error, if the version +// isn't compatible. +func LoadConfigAtStartup(path string, cert tls.Certificate, evLogger events.Logger, allowNewerConfig, skipPortProbing bool) (config.Wrapper, error) { myID := protocol.NewDeviceID(cert.Certificate[0]) cfg, originalVersion, err := config.Load(path, myID, evLogger) if fs.IsNotExist(err) { - cfg, err = DefaultConfig(path, myID, evLogger, noDefaultFolder, skipPortProbing) + cfg, err = DefaultConfig(path, myID, evLogger, skipPortProbing) if err != nil { return nil, fmt.Errorf("failed to generate default config: %w", err) }