diff --git a/cmd/picoclaw/cmd_agent.go b/cmd/picoclaw/cmd_agent.go index 98ea51103..1598084c4 100644 --- a/cmd/picoclaw/cmd_agent.go +++ b/cmd/picoclaw/cmd_agent.go @@ -24,6 +24,7 @@ func agentCmd() { message := "" sessionKey := "cli:default" modelOverride := "" + configPath := "" args := os.Args[2:] for i := 0; i < len(args); i++ { @@ -46,10 +47,24 @@ func agentCmd() { modelOverride = args[i+1] i++ } + case "-c", "--config": + if i+1 < len(args) { + configPath = args[i+1] + i++ + } else { + fmt.Println("Error: -c/--config requires a file path") + os.Exit(1) + } + default: + if strings.HasPrefix(args[i], "--config=") { + configPath = strings.TrimPrefix(args[i], "--config=") + } else if strings.HasPrefix(args[i], "-c=") { + configPath = strings.TrimPrefix(args[i], "-c=") + } } } - cfg, err := loadConfig() + cfg, err := loadConfigFromPath(configPath) if err != nil { fmt.Printf("Error loading config: %v\n", err) os.Exit(1) diff --git a/cmd/picoclaw/cmd_gateway.go b/cmd/picoclaw/cmd_gateway.go index 3010c1451..12d40c9af 100644 --- a/cmd/picoclaw/cmd_gateway.go +++ b/cmd/picoclaw/cmd_gateway.go @@ -29,17 +29,31 @@ import ( ) func gatewayCmd() { - // Check for --debug flag + configPath := "" args := os.Args[2:] - for _, arg := range args { - if arg == "--debug" || arg == "-d" { + for i := 0; i < len(args); i++ { + if args[i] == "--debug" || args[i] == "-d" { logger.SetLevel(logger.DEBUG) fmt.Println("🔍 Debug mode enabled") - break + continue + } + if args[i] == "-c" || args[i] == "--config" { + if i+1 < len(args) { + configPath = args[i+1] + i++ + continue + } + fmt.Println("Error: -c/--config requires a file path") + os.Exit(1) + } + if strings.HasPrefix(args[i], "--config=") { + configPath = strings.TrimPrefix(args[i], "--config=") + } else if strings.HasPrefix(args[i], "-c=") { + configPath = strings.TrimPrefix(args[i], "-c=") } } - cfg, err := loadConfig() + cfg, err := loadConfigFromPath(configPath) if err != nil { fmt.Printf("Error loading config: %v\n", err) os.Exit(1) diff --git a/cmd/picoclaw/main.go b/cmd/picoclaw/main.go index 25ad701ca..a8f673d7a 100644 --- a/cmd/picoclaw/main.go +++ b/cmd/picoclaw/main.go @@ -195,5 +195,12 @@ func getConfigPath() string { } func loadConfig() (*config.Config, error) { - return config.LoadConfig(getConfigPath()) + return loadConfigFromPath("") +} + +func loadConfigFromPath(path string) (*config.Config, error) { + if path == "" { + path = getConfigPath() + } + return config.LoadConfig(path) }