refactor: dynamically load all [DEFAULT] section aliases

Removed hardcoded alias handling (unregister, git_gc) in favor of
dynamically loading all key-value pairs from the [DEFAULT] section
into the Aliases map. This allows mrconfig files to define custom
aliases without code changes.

- Simplified switch statement in LoadMRConfig
- Updated function documentation
- All tests passing
This commit is contained in:
2026-02-12 13:33:30 +00:00
parent 50f5bc897d
commit 9ad9412a8c

View File

@@ -44,8 +44,7 @@ func (m MRConfig) ToMGConfig() MGConfig {
} }
// LoadMRConfig loads the mrconfig file from the user's home directory // LoadMRConfig loads the mrconfig file from the user's home directory
// and returns a MRConfig struct // and returns a MRConfig struct with all repos and aliases from the [DEFAULT] section
// TODO: load aliases into map instead of hardcoded Unregister prop
func LoadMRConfig() (MRConfig, error) { func LoadMRConfig() (MRConfig, error) {
home, err := os.UserHomeDir() home, err := os.UserHomeDir()
if err != nil { if err != nil {
@@ -107,16 +106,8 @@ func LoadMRConfig() (MRConfig, error) {
config.Repos[length].Remote = split[1] config.Repos[length].Remote = split[1]
case "default": case "default":
// Load all DEFAULT section aliases into the map
// TODO load text into Aliases map instead of hardcoded Unregister prop config.Aliases[split[0]] = split[1]
switch split[0] {
case "unregister":
config.Aliases["unregister"] = split[1]
case "git_gc":
config.Aliases["gc"] = split[1]
default:
return MRConfig{}, fmt.Errorf("unexpected argument on line %d: %s", n, line)
}
} }
} }
return config, nil return config, nil