mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-08-10 13:20:33 +02:00
cmd/ctrld: do not create config dir if not necessary
This commit is contained in:
+24
-2
@@ -1063,12 +1063,25 @@ func userHomeDir() (string, error) {
|
|||||||
}
|
}
|
||||||
dir = "/etc/controld"
|
dir = "/etc/controld"
|
||||||
if err := os.MkdirAll(dir, 0750); err != nil {
|
if err := os.MkdirAll(dir, 0750); err != nil {
|
||||||
return "", err
|
return os.UserHomeDir() // fallback to user home directory
|
||||||
|
}
|
||||||
|
if ok, _ := dirWritable(dir); !ok {
|
||||||
|
return os.UserHomeDir()
|
||||||
}
|
}
|
||||||
return dir, nil
|
return dir, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func tryReadingConfig(writeDefaultConfig bool) {
|
func tryReadingConfig(writeDefaultConfig bool) {
|
||||||
|
// --config is specified.
|
||||||
|
if configPath != "" {
|
||||||
|
v.SetConfigFile(configPath)
|
||||||
|
readConfigFile(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// no config start or base64 config mode.
|
||||||
|
if !writeDefaultConfig {
|
||||||
|
return
|
||||||
|
}
|
||||||
configs := []struct {
|
configs := []struct {
|
||||||
name string
|
name string
|
||||||
written bool
|
written bool
|
||||||
@@ -1080,7 +1093,7 @@ func tryReadingConfig(writeDefaultConfig bool) {
|
|||||||
|
|
||||||
dir, err := userHomeDir()
|
dir, err := userHomeDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
mainLog.Fatal().Msgf("failed to get config dir: %v", err)
|
mainLog.Fatal().Msgf("failed to get user home dir: %v", err)
|
||||||
}
|
}
|
||||||
for _, config := range configs {
|
for _, config := range configs {
|
||||||
ctrld.SetConfigNameWithPath(v, config.name, dir)
|
ctrld.SetConfigNameWithPath(v, config.name, dir)
|
||||||
@@ -1397,3 +1410,12 @@ func updateListenerConfig() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func dirWritable(dir string) (bool, error) {
|
||||||
|
f, err := os.CreateTemp(dir, "")
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
defer os.Remove(f.Name())
|
||||||
|
return true, f.Close()
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user