diff --git a/pkg/wconfig/filewatcher.go b/pkg/wconfig/filewatcher.go index 7286c3c32..3478b4a4a 100644 --- a/pkg/wconfig/filewatcher.go +++ b/pkg/wconfig/filewatcher.go @@ -14,8 +14,6 @@ import ( "github.com/wavetermdev/waveterm/pkg/wps" ) -var configDirAbsPath = wavebase.GetWaveConfigDir() - var instance *Watcher var once sync.Once @@ -38,6 +36,7 @@ func GetWatcher() *Watcher { log.Printf("failed to create file watcher: %v", err) return } + configDirAbsPath := wavebase.GetWaveConfigDir() instance = &Watcher{watcher: watcher} err = instance.watcher.Add(configDirAbsPath) const failedStr = "failed to add path %s to watcher: %v" diff --git a/pkg/wconfig/settingsconfig.go b/pkg/wconfig/settingsconfig.go index 21386675e..8593af40b 100644 --- a/pkg/wconfig/settingsconfig.go +++ b/pkg/wconfig/settingsconfig.go @@ -16,6 +16,7 @@ import ( "strings" "github.com/wavetermdev/waveterm/pkg/util/utilfn" + "github.com/wavetermdev/waveterm/pkg/wavebase" "github.com/wavetermdev/waveterm/pkg/waveobj" "github.com/wavetermdev/waveterm/pkg/wconfig/defaultconfig" ) @@ -183,8 +184,6 @@ func readConfigHelper(fileName string, barr []byte, readErr error) (waveobj.Meta return rtn, cerrs } -var configDirFsys = os.DirFS(configDirAbsPath) - func readConfigFileFS(fsys fs.FS, logPrefix string, fileName string) (waveobj.MetaMapType, []ConfigError) { barr, readErr := fs.ReadFile(fsys, fileName) return readConfigHelper(logPrefix+fileName, barr, readErr) @@ -195,10 +194,13 @@ func ReadDefaultsConfigFile(fileName string) (waveobj.MetaMapType, []ConfigError } func ReadWaveHomeConfigFile(fileName string) (waveobj.MetaMapType, []ConfigError) { + configDirAbsPath := wavebase.GetWaveConfigDir() + configDirFsys := os.DirFS(configDirAbsPath) return readConfigFileFS(configDirFsys, "", fileName) } func WriteWaveHomeConfigFile(fileName string, m waveobj.MetaMapType) error { + configDirAbsPath := wavebase.GetWaveConfigDir() fullFileName := filepath.Join(configDirAbsPath, fileName) barr, err := jsonMarshalConfigInOrder(m) if err != nil { @@ -283,6 +285,8 @@ func readConfigPartForFS(fsys fs.FS, logPrefix string, partName string, simpleMe // Combine files from the defaults and home directory for the specified config part name func readConfigPart(partName string, simpleMerge bool) (waveobj.MetaMapType, []ConfigError) { + configDirAbsPath := wavebase.GetWaveConfigDir() + configDirFsys := os.DirFS(configDirAbsPath) defaultConfigs, cerrs := readConfigPartForFS(defaultconfig.ConfigFS, "defaults:", partName, simpleMerge) homeConfigs, cerrs1 := readConfigPartForFS(configDirFsys, "", partName, simpleMerge) @@ -326,6 +330,7 @@ func GetConfigSubdirs() []string { var fullConfig FullConfigType configRType := reflect.TypeOf(fullConfig) var retVal []string + configDirAbsPath := wavebase.GetWaveConfigDir() for fieldIdx := 0; fieldIdx < configRType.NumField(); fieldIdx++ { field := configRType.Field(fieldIdx) if field.PkgPath != "" {