From aeaa49d517970973d4c2b8b5dd069910bdfac24f Mon Sep 17 00:00:00 2001 From: Denis Vaumoron Date: Fri, 2 Feb 2024 14:24:17 +0100 Subject: [PATCH] refactor after #40 --- .../semantic/parser/flat/flatparser.go | 35 ++++++++----------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/versionmanager/semantic/parser/flat/flatparser.go b/versionmanager/semantic/parser/flat/flatparser.go index cefcaa8b..40e5eede 100644 --- a/versionmanager/semantic/parser/flat/flatparser.go +++ b/versionmanager/semantic/parser/flat/flatparser.go @@ -27,22 +27,11 @@ import ( "github.com/tofuutils/tenv/config" ) -const msgFlatErr = "Failed to read file :" - func RetrieveVersion(versionFileNames []string, conf *config.Config) string { for _, fileName := range versionFileNames { - data, err := os.ReadFile(fileName) - if err == nil { - resolvedVersion := string(bytes.TrimSpace(data)) - if conf.Verbose && resolvedVersion != "" { - fmt.Println("Resolved version from", fileName, ":", resolvedVersion) //nolint - } - + if resolvedVersion := retrieveVersionFromFile(fileName, conf.Verbose); resolvedVersion != "" { return resolvedVersion } - if conf.Verbose { - fmt.Println(msgFlatErr, err) //nolint - } } checkedPath := map[string]struct{}{} @@ -78,19 +67,25 @@ func RetrieveVersion(versionFileNames []string, conf *config.Config) string { func retrieveVersionFromDir(versionFileNames []string, dirPath string, verbose bool) string { for _, fileName := range versionFileNames { - filePath := filepath.Join(dirPath, fileName) - data, err := os.ReadFile(filePath) - if err == nil { - resolvedVersion := string(bytes.TrimSpace(data)) - if verbose && resolvedVersion != "" { + if resolvedVersion := retrieveVersionFromFile(filepath.Join(dirPath, fileName), verbose); resolvedVersion != "" { + return resolvedVersion + } + } + + return "" +} + +func retrieveVersionFromFile(filePath string, verbose bool) string { + if data, err := os.ReadFile(filePath); err == nil { + if resolvedVersion := string(bytes.TrimSpace(data)); resolvedVersion != "" { + if verbose { fmt.Println("Resolved version from", filePath, ":", resolvedVersion) //nolint } return resolvedVersion } - if verbose { - fmt.Println(msgFlatErr, err) //nolint - } + } else if verbose { + fmt.Println("Failed to read file :", err) //nolint } return ""