diff --git a/lib/config.go b/lib/config.go index 25c8b2f..a01d771 100644 --- a/lib/config.go +++ b/lib/config.go @@ -6,9 +6,13 @@ import ( "os" ) -func getConfigPath() string { - dirname, _ := os.UserHomeDir() - return dirname + "/.mdrss/config.json" +func getConfigPath(config_path string) string { + if FileExists(config_path) { + return config_path + } else { + dirname, _ := os.UserHomeDir() + return dirname + "/.mdrss/config.json" + } } func FileExists(filename string) bool { @@ -18,9 +22,9 @@ func FileExists(filename string) bool { return true } -func ReadConfig() (Config, error) { +func ReadConfig(config_path string) (Config, error) { var config Config - configPath := getConfigPath() + configPath := getConfigPath(config_path) if FileExists(configPath) { configContent, _ := os.ReadFile(configPath) jsonErr := json.Unmarshal(configContent, &config) diff --git a/mdrss.go b/mdrss.go index 121288f..c142056 100644 --- a/mdrss.go +++ b/mdrss.go @@ -2,6 +2,7 @@ package main import ( mdrss "github.com/TimoKats/mdrss/lib" + "flag" "reflect" "errors" "os" @@ -58,16 +59,27 @@ func parseCommand(command string, config mdrss.Config) error { } func main() { - if len(os.Args) != 2 { - mdrss.Error.Println("mdrss <>") - return + var config_path string + flag.StringVar(&config_path, "config", "~/.mdrss/config.json", "path to config.json") + flag.Parse() + + var cmd string + switch len(os.Args) { + case 2: + cmd = os.Args[1] + case 4: + cmd = os.Args[3] + default: + mdrss.Error.Println("mdrss <>") + return } - config, configErr := mdrss.ReadConfig() + + config, configErr := mdrss.ReadConfig(config_path) if configErr != nil { mdrss.Error.Println(configErr) return } - commandErr := parseCommand(os.Args[1], config) + commandErr := parseCommand(cmd, config) if commandErr != nil { mdrss.Error.Println(commandErr) }