From 3131d944292c28704a57b3510e5322ef8104d176 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Mon, 22 Dec 2025 12:07:03 +0200 Subject: [PATCH] Add 'config' flag --- src/config.go | 22 ++++++++++++---------- src/main.go | 6 +++--- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/config.go b/src/config.go index b2a89c9..cc35b80 100644 --- a/src/config.go +++ b/src/config.go @@ -22,20 +22,22 @@ var config = StormfetchConfig{ } func readConfig() { - // Get home directory - userConfigDir, _ := os.UserConfigDir() + if ConfigPath == "" { + // Get home directory + userConfigDir, _ := os.UserConfigDir() - // Find valid config directory - if _, err := os.Stat(path.Join(userConfigDir, "stormfetch/config.yml")); err == nil { - configPath = path.Join(userConfigDir, "stormfetch/config.yml") - } else if _, err := os.Stat(path.Join(SystemConfigDir, "stormfetch/config.yml")); err == nil { - configPath = path.Join(SystemConfigDir, "stormfetch/config.yml") - } else { - log.Fatalf("Config file not found: %s", err.Error()) + // Find valid config directory + if _, err := os.Stat(path.Join(userConfigDir, "stormfetch/config.yml")); err == nil { + ConfigPath = path.Join(userConfigDir, "stormfetch/config.yml") + } else if _, err := os.Stat(path.Join(SystemConfigDir, "stormfetch/config.yml")); err == nil { + ConfigPath = path.Join(SystemConfigDir, "stormfetch/config.yml") + } else { + log.Fatalf("Config file not found: %s", err.Error()) + } } // Parse config - bytes, err := os.ReadFile(configPath) + bytes, err := os.ReadFile(ConfigPath) if err != nil { log.Fatal(err) } diff --git a/src/main.go b/src/main.go index c203d2a..15403b8 100644 --- a/src/main.go +++ b/src/main.go @@ -15,19 +15,19 @@ var SystemConfigDir = "/etc/" // Flag variables var ShowVersion = false +var ConfigPath = "" var ShowModuleTimeTaken = false -var configPath = "" - func main() { - readConfig() parseFlags() + readConfig() initializeModuleMap() run() } func parseFlags() { flag.BoolVar(&ShowVersion, "version", false, "Show Stormfetch version") + flag.StringVar(&ConfigPath, "config", "", "Use the specified config file") flag.BoolVar(&ShowModuleTimeTaken, "time-taken", false, "Show time taken to execute each module") flag.StringVar(&config.Ascii, "ascii", config.Ascii, "Set distro ascii") flag.StringVar(&config.DistroName, "distro-name", config.DistroName, "Set distro name")