"net/http"
"os"
"runtime"
+ "strings"
"time"
)
defer func() { _ = l.Sync() }()
logger := l.Sugar()
+ if !(strings.HasSuffix(*configDir, "/") || strings.HasSuffix(*configDir, "\\")) {
+ *configDir = *configDir + "/"
+ }
+
if *init {
- if _, err := os.Stat(*configDir + "/config.yaml"); !os.IsNotExist(err) {
- logger.Fatalw("Init failed. Existing config directory found: " + *configDir)
- }
+ if _, err := os.Stat(*configDir + "/config.yaml"); os.IsNotExist(err) {
+ if err := os.MkdirAll(*configDir, 0750); err != nil {
+ logger.Fatal(err)
+ }
- if err := os.MkdirAll(*configDir, 0750); err != nil {
- logger.Fatal(err)
- }
+ if err := copyDir("mobius/config", *configDir); err != nil {
+ logger.Fatal(err)
+ }
+ logger.Infow("Config dir initialized at " + *configDir)
- if err := copyDir("mobius/config", *configDir); err != nil {
- logger.Fatal(err)
+ } else {
+ logger.Infow("Existing config dir found. Skipping initialization.")
}
}
func defaultConfigPath() (cfgPath string) {
switch runtime.GOOS {
case "windows":
- cfgPath = "config"
+ cfgPath = "config/"
case "darwin":
if _, err := os.Stat("/usr/local/var/mobius/config/"); err == nil {
cfgPath = "/usr/local/var/mobius/config/"