From 2d3fa2fc31806d5dac4d0e5027b3f1f0a0d9c1e4 Mon Sep 17 00:00:00 2001 From: mynk8 Date: Sun, 3 May 2026 10:06:31 +0530 Subject: [PATCH] Refactor config path handling to filepath Add helper to compute config path from home with fallback Switch to filepath for path joins and directory ops in local config code for correctly handling platform conventions Signed-off-by: mynk8 --- pkg/config/config.go | 10 +++++++++- pkg/config/localconfig.go | 12 ++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index e5ff9a9..88c8ec3 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -34,9 +34,17 @@ var ( // Verbose represents a debug flag for HTTP Exchanges Verbose bool = false - ConfigPath = filepath.Join(os.Getenv("HOME"), ".microcks-cli", "config.yaml") + ConfigPath = defaultConfigPath() ) +func defaultConfigPath() string { + homeDir, err := getHomeDir() + if err != nil { + return filepath.Join(".microcks-cli", "config.yaml") + } + return filepath.Join(homeDir, ".microcks-cli", "config.yaml") +} + // CreateTLSConfig wraps the creation of tls.Config object for use with HTTP Client for example. func CreateTLSConfig() *tls.Config { tlsConfig := &tls.Config{} diff --git a/pkg/config/localconfig.go b/pkg/config/localconfig.go index c7546e9..7a86b9c 100644 --- a/pkg/config/localconfig.go +++ b/pkg/config/localconfig.go @@ -3,7 +3,7 @@ package config import ( "fmt" "os" - "path" + "path/filepath" "slices" configUtil "github.com/microcks/microcks-cli/pkg/util" @@ -109,7 +109,7 @@ func DefaultConfigDir() (string, error) { return "", nil } - configDir = path.Join(homeDir, ".config", "microcks") + configDir = filepath.Join(homeDir, ".config", "microcks") return configDir, nil } @@ -130,7 +130,7 @@ func DefaultLocalConfigPath() (string, error) { if err != nil { return "", err } - return path.Join(dir, "config"), nil + return filepath.Join(dir, "config"), nil } // DefaultLocalWatchPath returns the local watch configuration path. @@ -139,7 +139,7 @@ func DefaultLocalWatchPath() (string, error) { if err != nil { return "", err } - return path.Join(dir, "watch"), nil + return filepath.Join(dir, "watch"), nil } // ValidateLocalConfig validates the local configuration. @@ -155,7 +155,7 @@ func ValidateLocalConfig(config LocalConfig) error { // WriteLocalConfig writes a new local configuration file. func WriteLocalConfig(config LocalConfig, configPath string) error { - err := os.MkdirAll(path.Dir(configPath), os.ModePerm) + err := os.MkdirAll(filepath.Dir(configPath), os.ModePerm) if err != nil { return err } @@ -407,7 +407,7 @@ func ReadLocalWatchConfig(path string) (*WatchConfig, error) { // WriteLocalWatchConfig writes a new local watch configuration file. func WriteLocalWatchConfig(config WatchConfig, cfgPath string) error { - err := os.MkdirAll(path.Dir(cfgPath), os.ModePerm) + err := os.MkdirAll(filepath.Dir(cfgPath), os.ModePerm) if err != nil { return err }