|
@@ -39,10 +39,10 @@ import (
|
|
|
"github.com/syncthing/syncthing/lib/logger"
|
|
|
"github.com/syncthing/syncthing/lib/osutil"
|
|
|
"github.com/syncthing/syncthing/lib/protocol"
|
|
|
+ "github.com/syncthing/syncthing/lib/svcutil"
|
|
|
"github.com/syncthing/syncthing/lib/syncthing"
|
|
|
"github.com/syncthing/syncthing/lib/tlsutil"
|
|
|
"github.com/syncthing/syncthing/lib/upgrade"
|
|
|
- "github.com/syncthing/syncthing/lib/util"
|
|
|
|
|
|
"github.com/pkg/errors"
|
|
|
)
|
|
@@ -323,7 +323,7 @@ func main() {
|
|
|
}
|
|
|
if err != nil {
|
|
|
l.Warnln("Command line options:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
|
|
|
if options.logFile == "default" || options.logFile == "" {
|
|
@@ -360,7 +360,7 @@ func main() {
|
|
|
)
|
|
|
if err != nil {
|
|
|
l.Warnln("Error reading device ID:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
|
|
|
fmt.Println(protocol.NewDeviceID(cert.Certificate[0]))
|
|
@@ -370,7 +370,7 @@ func main() {
|
|
|
if options.browserOnly {
|
|
|
if err := openGUI(protocol.EmptyDeviceID); err != nil {
|
|
|
l.Warnln("Failed to open web UI:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
return
|
|
|
}
|
|
@@ -378,7 +378,7 @@ func main() {
|
|
|
if options.generateDir != "" {
|
|
|
if err := generate(options.generateDir); err != nil {
|
|
|
l.Warnln("Failed to generate config and keys:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
return
|
|
|
}
|
|
@@ -386,14 +386,14 @@ func main() {
|
|
|
// Ensure that our home directory exists.
|
|
|
if err := ensureDir(locations.GetBaseDir(locations.ConfigBaseDir), 0700); err != nil {
|
|
|
l.Warnln("Failure on home directory:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
|
|
|
if options.upgradeTo != "" {
|
|
|
err := upgrade.ToURL(options.upgradeTo)
|
|
|
if err != nil {
|
|
|
l.Warnln("Error while Upgrading:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
l.Infoln("Upgraded from", options.upgradeTo)
|
|
|
return
|
|
@@ -424,13 +424,13 @@ func main() {
|
|
|
os.Exit(exitCodeForUpgrade(err))
|
|
|
}
|
|
|
l.Infof("Upgraded to %q", release.Tag)
|
|
|
- os.Exit(util.ExitUpgrade.AsInt())
|
|
|
+ os.Exit(svcutil.ExitUpgrade.AsInt())
|
|
|
}
|
|
|
|
|
|
if options.resetDatabase {
|
|
|
if err := resetDB(); err != nil {
|
|
|
l.Warnln("Resetting database:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
l.Infoln("Successfully reset database - it will be rebuilt after next start.")
|
|
|
return
|
|
@@ -610,7 +610,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
|
|
|
cfg, err := syncthing.LoadConfigAtStartup(locations.Get(locations.ConfigFile), cert, evLogger, runtimeOptions.allowNewerConfig, noDefaultFolder)
|
|
|
if err != nil {
|
|
|
l.Warnln("Failed to initialize config:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
|
|
|
// Candidate builds should auto upgrade. Make sure the option is set,
|
|
@@ -656,7 +656,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
|
|
|
}
|
|
|
} else {
|
|
|
l.Infof("Upgraded to %q, exiting now.", release.Tag)
|
|
|
- os.Exit(util.ExitUpgrade.AsInt())
|
|
|
+ os.Exit(svcutil.ExitUpgrade.AsInt())
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -684,7 +684,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
|
|
|
app, err := syncthing.New(cfg, ldb, evLogger, cert, appOpts)
|
|
|
if err != nil {
|
|
|
l.Warnln("Failed to start Syncthing:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
|
|
|
if autoUpgradePossible {
|
|
@@ -701,18 +701,18 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
|
|
|
f, err := os.Create(fmt.Sprintf("cpu-%d.pprof", os.Getpid()))
|
|
|
if err != nil {
|
|
|
l.Warnln("Creating profile:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
if err := pprof.StartCPUProfile(f); err != nil {
|
|
|
l.Warnln("Starting profile:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
}
|
|
|
|
|
|
go standbyMonitor(app, cfg)
|
|
|
|
|
|
if err := app.Start(); err != nil {
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
|
|
|
cleanConfigDirectory()
|
|
@@ -725,7 +725,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
|
|
|
|
|
|
status := app.Wait()
|
|
|
|
|
|
- if status == util.ExitError {
|
|
|
+ if status == svcutil.ExitError {
|
|
|
l.Warnln("Syncthing stopped with error:", app.Error())
|
|
|
}
|
|
|
|
|
@@ -744,7 +744,7 @@ func setupSignalHandling(app *syncthing.App) {
|
|
|
signal.Notify(restartSign, sigHup)
|
|
|
go func() {
|
|
|
<-restartSign
|
|
|
- app.Stop(util.ExitRestart)
|
|
|
+ app.Stop(svcutil.ExitRestart)
|
|
|
}()
|
|
|
|
|
|
// Exit with "success" code (no restart) on INT/TERM
|
|
@@ -753,7 +753,7 @@ func setupSignalHandling(app *syncthing.App) {
|
|
|
signal.Notify(stopSign, os.Interrupt, sigTerm)
|
|
|
go func() {
|
|
|
<-stopSign
|
|
|
- app.Stop(util.ExitSuccess)
|
|
|
+ app.Stop(svcutil.ExitSuccess)
|
|
|
}()
|
|
|
}
|
|
|
|
|
@@ -790,7 +790,7 @@ func auditWriter(auditFile string) io.Writer {
|
|
|
fd, err = os.OpenFile(auditFile, auditFlags, 0600)
|
|
|
if err != nil {
|
|
|
l.Warnln("Audit:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
auditDest = auditFile
|
|
|
}
|
|
@@ -840,7 +840,7 @@ func standbyMonitor(app *syncthing.App, cfg config.Wrapper) {
|
|
|
// things a moment to stabilize.
|
|
|
time.Sleep(restartDelay)
|
|
|
|
|
|
- app.Stop(util.ExitRestart)
|
|
|
+ app.Stop(svcutil.ExitRestart)
|
|
|
return
|
|
|
}
|
|
|
now = time.Now()
|
|
@@ -910,7 +910,7 @@ func autoUpgrade(cfg config.Wrapper, app *syncthing.App, evLogger events.Logger)
|
|
|
sub.Unsubscribe()
|
|
|
l.Warnf("Automatically upgraded to version %q. Restarting in 1 minute.", rel.Tag)
|
|
|
time.Sleep(time.Minute)
|
|
|
- app.Stop(util.ExitUpgrade)
|
|
|
+ app.Stop(svcutil.ExitUpgrade)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -998,13 +998,13 @@ func setPauseState(cfg config.Wrapper, paused bool) {
|
|
|
}
|
|
|
if _, err := cfg.Replace(raw); err != nil {
|
|
|
l.Warnln("Cannot adjust paused state:", err)
|
|
|
- os.Exit(util.ExitError.AsInt())
|
|
|
+ os.Exit(svcutil.ExitError.AsInt())
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func exitCodeForUpgrade(err error) int {
|
|
|
if _, ok := err.(*errNoUpgrade); ok {
|
|
|
- return util.ExitNoUpgradeAvailable.AsInt()
|
|
|
+ return svcutil.ExitNoUpgradeAvailable.AsInt()
|
|
|
}
|
|
|
- return util.ExitError.AsInt()
|
|
|
+ return svcutil.ExitError.AsInt()
|
|
|
}
|