|
@@ -39,6 +39,13 @@ func getPassword() string {
|
39
|
39
|
return strings.TrimSpace(text)
|
40
|
40
|
}
|
41
|
41
|
|
|
42
|
+func fileDoesNotExist(file string) bool {
|
|
43
|
+ if _, err := os.Stat(file); os.IsNotExist(err) {
|
|
44
|
+ return true
|
|
45
|
+ }
|
|
46
|
+ return false
|
|
47
|
+}
|
|
48
|
+
|
42
|
49
|
// implements the `oragono mkcerts` command
|
43
|
50
|
func doMkcerts(configFile string, quiet bool) {
|
44
|
51
|
config, err := irc.LoadRawConfig(configFile)
|
|
@@ -59,7 +66,7 @@ func doMkcerts(configFile string, quiet bool) {
|
59
|
66
|
if existingKey == conf.TLS.Key {
|
60
|
67
|
continue
|
61
|
68
|
} else {
|
62
|
|
- log.Fatal("Conflicting TLS key files for", conf.TLS.Cert)
|
|
69
|
+ log.Fatal("Conflicting TLS key files for ", conf.TLS.Cert)
|
63
|
70
|
}
|
64
|
71
|
}
|
65
|
72
|
if !quiet {
|
|
@@ -67,6 +74,9 @@ func doMkcerts(configFile string, quiet bool) {
|
67
|
74
|
}
|
68
|
75
|
host := config.Server.Name
|
69
|
76
|
cert, key := conf.TLS.Cert, conf.TLS.Key
|
|
77
|
+ if !(fileDoesNotExist(cert) && fileDoesNotExist(key)) {
|
|
78
|
+ log.Fatalf("Preexisting TLS cert and/or key files: %s %s", cert, key)
|
|
79
|
+ }
|
70
|
80
|
err := mkcerts.CreateCert("Oragono", host, cert, key)
|
71
|
81
|
if err == nil {
|
72
|
82
|
if !quiet {
|