|
@@ -161,24 +161,25 @@ func (c *CLI) AfterApply() error {
|
|
type serveCmd struct {
|
|
type serveCmd struct {
|
|
buildSpecificOptions
|
|
buildSpecificOptions
|
|
|
|
|
|
- AllowNewerConfig bool `help:"Allow loading newer than current config version" env:"STALLOWNEWERCONFIG"`
|
|
|
|
- Audit bool `help:"Write events to audit file" env:"STAUDIT"`
|
|
|
|
- AuditFile string `name:"auditfile" help:"Specify audit file (use \"-\" for stdout, \"--\" for stderr)" placeholder:"PATH" env:"STAUDITFILE"`
|
|
|
|
- DBMaintenanceInterval time.Duration `help:"Database maintenance interval" default:"8h" env:"STDBMAINTINTERVAL"`
|
|
|
|
- GUIAddress string `name:"gui-address" help:"Override GUI address (e.g. \"http://192.0.2.42:8443\")" placeholder:"URL" env:"STGUIADDRESS"`
|
|
|
|
- GUIAPIKey string `name:"gui-apikey" help:"Override GUI API key" placeholder:"API-KEY" env:"STGUIAPIKEY"`
|
|
|
|
- LogFile string `name:"logfile" help:"Log file name (see below)" default:"${logFile}" placeholder:"PATH" env:"STLOGFILE"`
|
|
|
|
- LogFlags int `name:"logflags" help:"Select information in log line prefix (see below)" default:"${logFlags}" placeholder:"BITS" env:"STLOGFLAGS"`
|
|
|
|
- LogMaxFiles int `name:"log-max-old-files" help:"Number of old files to keep (zero to keep only current)" default:"${logMaxFiles}" placeholder:"N" env:"STNUMLOGFILES"`
|
|
|
|
- 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"`
|
|
|
|
- Paused bool `help:"Start with all devices and folders paused" env:"STPAUSED"`
|
|
|
|
- Unpaused bool `help:"Start with all devices and folders unpaused" env:"STUNPAUSED"`
|
|
|
|
- Verbose bool `help:"Print verbose log output" env:"STVERBOSE"`
|
|
|
|
|
|
+ AllowNewerConfig bool `help:"Allow loading newer than current config version" env:"STALLOWNEWERCONFIG"`
|
|
|
|
+ Audit bool `help:"Write events to audit file" env:"STAUDIT"`
|
|
|
|
+ AuditFile string `name:"auditfile" help:"Specify audit file (use \"-\" for stdout, \"--\" for stderr)" placeholder:"PATH" env:"STAUDITFILE"`
|
|
|
|
+ DBMaintenanceInterval time.Duration `help:"Database maintenance interval" default:"8h" env:"STDBMAINTENANCEINTERVAL"`
|
|
|
|
+ DBDeleteRetentionInterval time.Duration `help:"Database deleted item retention interval" default:"4320h" env:"STDBDELETERETENTIONINTERVAL"`
|
|
|
|
+ GUIAddress string `name:"gui-address" help:"Override GUI address (e.g. \"http://192.0.2.42:8443\")" placeholder:"URL" env:"STGUIADDRESS"`
|
|
|
|
+ GUIAPIKey string `name:"gui-apikey" help:"Override GUI API key" placeholder:"API-KEY" env:"STGUIAPIKEY"`
|
|
|
|
+ LogFile string `name:"logfile" help:"Log file name (see below)" default:"${logFile}" placeholder:"PATH" env:"STLOGFILE"`
|
|
|
|
+ LogFlags int `name:"logflags" help:"Select information in log line prefix (see below)" default:"${logFlags}" placeholder:"BITS" env:"STLOGFLAGS"`
|
|
|
|
+ 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"`
|
|
|
|
+ Paused bool `help:"Start with all devices and folders paused" env:"STPAUSED"`
|
|
|
|
+ Unpaused bool `help:"Start with all devices and folders unpaused" env:"STUNPAUSED"`
|
|
|
|
+ Verbose bool `help:"Print verbose log output" env:"STVERBOSE"`
|
|
|
|
|
|
// Debug options below
|
|
// Debug options below
|
|
DebugGUIAssetsDir string `help:"Directory to load GUI assets from" placeholder:"PATH" env:"STGUIASSETS"`
|
|
DebugGUIAssetsDir string `help:"Directory to load GUI assets from" placeholder:"PATH" env:"STGUIASSETS"`
|
|
@@ -487,12 +488,12 @@ func (c *serveCmd) syncthingMain() {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
- if err := syncthing.TryMigrateDatabase(); err != nil {
|
|
|
|
|
|
+ if err := syncthing.TryMigrateDatabase(c.DBDeleteRetentionInterval); err != nil {
|
|
l.Warnln("Failed to migrate old-style database:", err)
|
|
l.Warnln("Failed to migrate old-style database:", err)
|
|
os.Exit(1)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
|
|
- sdb, err := syncthing.OpenDatabase(locations.Get(locations.Database))
|
|
|
|
|
|
+ sdb, err := syncthing.OpenDatabase(locations.Get(locations.Database), c.DBDeleteRetentionInterval)
|
|
if err != nil {
|
|
if err != nil {
|
|
l.Warnln("Error opening database:", err)
|
|
l.Warnln("Error opening database:", err)
|
|
os.Exit(1)
|
|
os.Exit(1)
|