mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-03 12:28:28 +00:00
Refactor: extract function generate
This commit is contained in:
parent
6ff02761a9
commit
db4f23f377
@ -197,7 +197,6 @@ var (
|
|||||||
upgradeTo string
|
upgradeTo string
|
||||||
noBrowser bool
|
noBrowser bool
|
||||||
noConsole bool
|
noConsole bool
|
||||||
generateDir string
|
|
||||||
logFile string
|
logFile string
|
||||||
auditEnabled bool
|
auditEnabled bool
|
||||||
verbose bool
|
verbose bool
|
||||||
@ -224,6 +223,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var guiAddress, guiAPIKey string
|
var guiAddress, guiAPIKey string
|
||||||
|
var generateDir string
|
||||||
flag.StringVar(&generateDir, "generate", "", "Generate key and config in specified dir, then exit")
|
flag.StringVar(&generateDir, "generate", "", "Generate key and config in specified dir, then exit")
|
||||||
flag.StringVar(&guiAddress, "gui-address", guiAddress, "Override GUI address")
|
flag.StringVar(&guiAddress, "gui-address", guiAddress, "Override GUI address")
|
||||||
flag.StringVar(&guiAPIKey, "gui-apikey", guiAPIKey, "Override GUI API key")
|
flag.StringVar(&guiAPIKey, "gui-apikey", guiAPIKey, "Override GUI API key")
|
||||||
@ -283,54 +283,7 @@ func main() {
|
|||||||
l.SetFlags(logFlags)
|
l.SetFlags(logFlags)
|
||||||
|
|
||||||
if generateDir != "" {
|
if generateDir != "" {
|
||||||
dir, err := osutil.ExpandTilde(generateDir)
|
generate(generateDir)
|
||||||
if err != nil {
|
|
||||||
l.Fatalln("generate:", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
info, err := os.Stat(dir)
|
|
||||||
if err == nil && !info.IsDir() {
|
|
||||||
l.Fatalln(dir, "is not a directory")
|
|
||||||
}
|
|
||||||
if err != nil && os.IsNotExist(err) {
|
|
||||||
err = osutil.MkdirAll(dir, 0700)
|
|
||||||
if err != nil {
|
|
||||||
l.Fatalln("generate:", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
certFile, keyFile := filepath.Join(dir, "cert.pem"), filepath.Join(dir, "key.pem")
|
|
||||||
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
|
|
||||||
if err == nil {
|
|
||||||
l.Warnln("Key exists; will not overwrite.")
|
|
||||||
l.Infoln("Device ID:", protocol.NewDeviceID(cert.Certificate[0]))
|
|
||||||
} else {
|
|
||||||
cert, err = tlsutil.NewCertificate(certFile, keyFile, tlsDefaultCommonName, tlsRSABits)
|
|
||||||
if err != nil {
|
|
||||||
l.Fatalln("Create certificate:", err)
|
|
||||||
}
|
|
||||||
myID = protocol.NewDeviceID(cert.Certificate[0])
|
|
||||||
if err != nil {
|
|
||||||
l.Fatalln("Load certificate:", err)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
l.Infoln("Device ID:", protocol.NewDeviceID(cert.Certificate[0]))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cfgFile := filepath.Join(dir, "config.xml")
|
|
||||||
if _, err := os.Stat(cfgFile); err == nil {
|
|
||||||
l.Warnln("Config exists; will not overwrite.")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
var myName, _ = os.Hostname()
|
|
||||||
var newCfg = defaultConfig(myName)
|
|
||||||
var cfg = config.Wrap(cfgFile, newCfg)
|
|
||||||
err = cfg.Save()
|
|
||||||
if err != nil {
|
|
||||||
l.Warnln("Failed to save config", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,6 +355,56 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func generate(generateDir string) {
|
||||||
|
dir, err := osutil.ExpandTilde(generateDir)
|
||||||
|
if err != nil {
|
||||||
|
l.Fatalln("generate:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
info, err := os.Stat(dir)
|
||||||
|
if err == nil && !info.IsDir() {
|
||||||
|
l.Fatalln(dir, "is not a directory")
|
||||||
|
}
|
||||||
|
if err != nil && os.IsNotExist(err) {
|
||||||
|
err = osutil.MkdirAll(dir, 0700)
|
||||||
|
if err != nil {
|
||||||
|
l.Fatalln("generate:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
certFile, keyFile := filepath.Join(dir, "cert.pem"), filepath.Join(dir, "key.pem")
|
||||||
|
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
|
||||||
|
if err == nil {
|
||||||
|
l.Warnln("Key exists; will not overwrite.")
|
||||||
|
l.Infoln("Device ID:", protocol.NewDeviceID(cert.Certificate[0]))
|
||||||
|
} else {
|
||||||
|
cert, err = tlsutil.NewCertificate(certFile, keyFile, tlsDefaultCommonName, tlsRSABits)
|
||||||
|
if err != nil {
|
||||||
|
l.Fatalln("Create certificate:", err)
|
||||||
|
}
|
||||||
|
myID = protocol.NewDeviceID(cert.Certificate[0])
|
||||||
|
if err != nil {
|
||||||
|
l.Fatalln("Load certificate:", err)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
l.Infoln("Device ID:", protocol.NewDeviceID(cert.Certificate[0]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cfgFile := filepath.Join(dir, "config.xml")
|
||||||
|
if _, err := os.Stat(cfgFile); err == nil {
|
||||||
|
l.Warnln("Config exists; will not overwrite.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var myName, _ = os.Hostname()
|
||||||
|
var newCfg = defaultConfig(myName)
|
||||||
|
var cfg = config.Wrap(cfgFile, newCfg)
|
||||||
|
err = cfg.Save()
|
||||||
|
if err != nil {
|
||||||
|
l.Warnln("Failed to save config", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func debugFacilities() string {
|
func debugFacilities() string {
|
||||||
facilities := l.Facilities()
|
facilities := l.Facilities()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user