diff --git a/cmd/gogitlabber/git.go b/cmd/gogitlabber/git.go index f747fa8..339a81e 100644 --- a/cmd/gogitlabber/git.go +++ b/cmd/gogitlabber/git.go @@ -94,9 +94,12 @@ func pullRepository(repoName string, repoDestination string) { if err != nil { errorCount = errorCount + 1 pulledCount = pulledCount - 1 - if strings.Contains(string(pullOutput), "You have unstaged changes") { + + switch { + case strings.Contains(string(pullOutput), "You have unstaged changes"): pullErrorMsg = append(pullErrorMsg, repoDestination) - } else { + + default: log.Printf("pull error: %v", err) } } diff --git a/cmd/gogitlabber/input.go b/cmd/gogitlabber/input.go index 46efc1d..1c0067e 100644 --- a/cmd/gogitlabber/input.go +++ b/cmd/gogitlabber/input.go @@ -23,61 +23,59 @@ func manageArguments() { gitlabToken = *tokenFlag gitlabHost = *hostFlag - // use environment variable if set, otherwise use flag value - if envHost := os.Getenv("GITLAB_URL"); envHost != "" { - gitlabHost = envHost - } - - if envToken := os.Getenv("GITLAB_API_TOKEN"); envToken != "" { + // manage gitlab api option + switch envToken := os.Getenv("GITLAB_API_TOKEN"); { + case envToken != "": gitlabToken = envToken - } - - if envRepoDest := os.Getenv("GOGITLABBER_DESTINATION"); envRepoDest != "" { - repoDestinationPre = envRepoDest - } - - if envArchived := os.Getenv("GOGITLABBER_ARCHIVED"); envArchived != "" { - includeArchived = envArchived - } - - // fail if no configuration found - if gitlabHost == "" { - fmt.Println("Fatal: No GitLab Host found.") - flag.PrintDefaults() - os.Exit(1) - } - - if gitlabToken == "" { + default: fmt.Println("Fatal: No GitLab API Token found.") flag.PrintDefaults() os.Exit(1) } - if repoDestinationPre == "" { + // manage gitlab url option + switch envHost := os.Getenv("GITLAB_URL"); { + case envHost != "": + gitlabHost = envHost + default: + fmt.Println("Fatal: No GitLab Host found.") + flag.PrintDefaults() + os.Exit(1) + } + + // manage destination option + switch envRepoDest := os.Getenv("GOGITLABBER_DESTINATION"); { + case envRepoDest != "": + repoDestinationPre = envRepoDest + default: fmt.Println("Fatal: No destination found.") flag.PrintDefaults() os.Exit(1) } - // --archive options: - // - any (fetch both) - // - exclusive (fetch archived exclusive) - // - excluded (fetch non-archived exclusive - default) - if includeArchived == "" { - includeArchived = "excluded" + // add slash 🎩🎸 if not provided + switch { + case !strings.HasSuffix(repoDestinationPre, "/"): + repoDestinationPre += "/" } - if includeArchived != "any" && - includeArchived != "exclusive" && - includeArchived != "excluded" { + // manage archived option + switch envArchived := os.Getenv("GOGITLABBER_ARCHIVED"); { + case envArchived == "": + includeArchived = "excluded" + + case envArchived == "any": + includeArchived = envArchived + + case envArchived == "exclusive": + includeArchived = envArchived + + case envArchived == "excluded": + includeArchived = envArchived + + default: fmt.Println("Fatal: Wrong archive option found.") flag.PrintDefaults() os.Exit(1) } - - // add slash 🎩🎸 if not provided - if !strings.HasSuffix(repoDestinationPre, "/") { - repoDestinationPre += "/" - } - }