diff --git a/repository/config.go b/repository/config.go index 781a0c1deb9681de422e5be0bfaa4588a16cfdb9..7e1ee6e85ec6e45dfa224e7df7e751f5cfc8af23 100644 --- a/repository/config.go +++ b/repository/config.go @@ -2,6 +2,7 @@ package repository import ( "errors" + "fmt" "strconv" "time" ) @@ -11,6 +12,14 @@ var ( ErrMultipleConfigEntry = errors.New("multiple config entry for the given key") ) +func newErrNoConfigEntry(key string) error { + return fmt.Errorf("%w: missing key %s", ErrNoConfigEntry, key) +} + +func newErrMultipleConfigEntry(key string) error { + return fmt.Errorf("%w: duplicated key %s", ErrMultipleConfigEntry, key) +} + // Config represent the common function interacting with the repository config storage type Config interface { ConfigRead diff --git a/repository/config_mem.go b/repository/config_mem.go index bc532373619c1267f74e3d61e2d20835da094437..55b12fd7c3ba9fc413eeb4095ca92d3ee8f9e30f 100644 --- a/repository/config_mem.go +++ b/repository/config_mem.go @@ -49,7 +49,7 @@ func (mc *MemConfig) ReadString(key string) (string, error) { key = normalizeKey(key) val, ok := mc.config[key] if !ok { - return "", fmt.Errorf("%w: missing key %s", ErrNoConfigEntry, key) + return "", newErrNoConfigEntry(key) } return val, nil diff --git a/repository/gogit_config.go b/repository/gogit_config.go index 2bdbadc0313d05698644dfb138af978758c9f78f..afa652b1983795dafd4b2f1fd984773b19f385fb 100644 --- a/repository/gogit_config.go +++ b/repository/gogit_config.go @@ -119,7 +119,7 @@ func (cr *goGitConfigReader) ReadString(key string) (string, error) { sectionName := split[0] if !cfg.Raw.HasSection(sectionName) { - return "", fmt.Errorf("%w: missing key %s", ErrNoConfigEntry, key) + return "", newErrNoConfigEntry(key) } section := cfg.Raw.Section(sectionName) @@ -127,24 +127,24 @@ func (cr *goGitConfigReader) ReadString(key string) (string, error) { case len(split) == 2: optionName := split[1] if !section.HasOption(optionName) { - return "", fmt.Errorf("%w: missing key %s", ErrNoConfigEntry, key) + return "", newErrNoConfigEntry(key) } if len(section.OptionAll(optionName)) > 1 { - return "", fmt.Errorf("%w: duplicated key %s", ErrMultipleConfigEntry, key) + return "", newErrMultipleConfigEntry(key) } return section.Option(optionName), nil default: subsectionName := strings.Join(split[1:len(split)-1], ".") optionName := split[len(split)-1] if !section.HasSubsection(subsectionName) { - return "", fmt.Errorf("%w: missing key %s", ErrNoConfigEntry, key) + return "", newErrNoConfigEntry(key) } subsection := section.Subsection(subsectionName) if !subsection.HasOption(optionName) { - return "", fmt.Errorf("%w: missing key %s", ErrNoConfigEntry, key) + return "", newErrNoConfigEntry(key) } if len(subsection.OptionAll(optionName)) > 1 { - return "", fmt.Errorf("%w: duplicated key %s", ErrMultipleConfigEntry, key) + return "", newErrMultipleConfigEntry(key) } return subsection.Option(optionName), nil }