diff --git a/commands/bridge_configure_doc.go b/commands/bridge_configure_doc.go index e4e87b852f26c3082a46f2c60629015c12a12857..cab80e44bea6ee16a697e40abc366e67336e6dd9 100644 --- a/commands/bridge_configure_doc.go +++ b/commands/bridge_configure_doc.go @@ -38,26 +38,25 @@ Successfully configured bridge: default # For Github git bug bridge configure \ --target=github \ + --url=https://github.com/MichaelMure/git-bug \ --login=$(LOGIN) \ --owner=$(OWNER) \ --project=$(PROJECT) \ --token=$(TOKEN) \ - --url=$(URL) \ # For Gitlab git bug bridge configure \ --target=gitlab \ - --base-url=$(BASE_URL) \ + --url=https://gitlab.com/gitlab-org/gitlab \ --login=$(LOGIN) \ --token=$(TOKEN) \ - --url=$(URL) \ # For Jira git bug bridge configure \ --target=jira \ - --base-url=$(BASE_URL) \ + --url= \ --login=$(LOGIN) \ --project=$(PROJECT) \ @@ -65,6 +64,6 @@ git bug bridge configure \ # For Launchpad-Preview git bug bridge configure \ --target=launchpad-preview \ + --url=https://bugs.launchpad.net/ubuntu/ \ --project=$(PROJECT) \ - --url=$(URL) \ ` diff --git a/doc/gen_docs.go b/doc/gen_docs.go index 8a75283539b28cca6d7bc7e6239cc27dc8f23b51..ae74309d2edaa622cdbdbdb6730de4183337f361 100644 --- a/doc/gen_docs.go +++ b/doc/gen_docs.go @@ -75,6 +75,15 @@ type BridgeFlagInfo struct { paramConflicts []string } +var bridgeUrls = map[string]string{ + "github": "https://github.com/MichaelMure/git-bug", + "gitlab": "https://gitlab.com/gitlab-org/gitlab", + "launchpad-preview": "https://bugs.launchpad.net/ubuntu/", + // TODO: Insert URL for Jira Project +} + +// genBridgeConfig generates the bridge configuration documentation on go generate +// Documentation is stored in commands/bridge_configure_doc.go func genBridgeConfig() error { var exampleText strings.Builder exampleText.WriteString("`") @@ -125,37 +134,26 @@ Successfully configured bridge: default exampleText.WriteString(strings.ToLower(b)) exampleText.WriteString(" \\\n") + exampleText.WriteString(" --url=") + exampleText.WriteString(bridgeUrls[b]) + exampleText.WriteString(" \\\n") + params, err := bridge.ValidParams(b) if err != nil { return errors.Wrap(err, "bridge parameters") } - OUTER: for _, param := range params { - if flagInfo, ok := flagInfos[param]; ok { - if len(flagInfo.paramConflicts) != 0 { - for p := range params { - for conflict := range flagInfo.paramConflicts { - if p == conflict { - continue OUTER - } - } - } - } - - exampleText.WriteString(" --") - exampleText.WriteString(flagInfo.flagName) - exampleText.WriteRune('=') - exampleText.WriteString(flagInfo.defaultVal) - } else { - exampleText.WriteString(" --") - exampleText.WriteString(strings.ToLower(param)) - exampleText.WriteString("=$(") - exampleText.WriteString(strings.ToUpper(strings.ReplaceAll(param, "-", "_"))) - exampleText.WriteRune(')') + if param == "URL" || param == "BaseURL" { + continue + } + + paramString := formatParam(param, params) + if paramString == "" { + continue } - exampleText.WriteString(" \\\n") + exampleText.WriteString(paramString) } } exampleText.WriteString("`") @@ -184,6 +182,40 @@ var bridgeConfigureExample =`) return nil } +// formatParam formats a parameter into a flag example in the command line +func formatParam(param string, params []string) string { + paramString := " --" + if flagInfo, ok := flagInfos[param]; ok { + if checkParamConflicts(flagInfo.paramConflicts, params) { + return "" + } + + paramString += flagInfo.flagName + "=" + flagInfo.defaultVal + } else { + paramString += strings.ToLower(param) + "=$(" + strings.ToUpper(param) + ")" + } + + paramString += " \\\n" + return paramString +} + +// checkParamConflicts checks the parameter conflicts against the list of present parameters +// If a conflict is found, it returns true. Otherwise, it returns false +func checkParamConflicts(paramConflicts []string, params []string) bool { + if len(paramConflicts) == 0 { + return false + } + + for p := range params { + for conflict := range paramConflicts { + if p == conflict { + return true + } + } + } + return false +} + func genManPage() error { cwd, _ := os.Getwd() dir := path.Join(cwd, "doc", "man") diff --git a/doc/man/git-bug-bridge-configure.1 b/doc/man/git-bug-bridge-configure.1 index 73cd44c86583f991ef52f4ff66b0db335efea9da..b6b2644abf9bda65b7a3fa2d61f8d4f37d07d654 100644 --- a/doc/man/git-bug-bridge-configure.1 +++ b/doc/man/git-bug-bridge-configure.1 @@ -110,26 +110,25 @@ Successfully configured bridge: default # For Github git bug bridge configure \\ \-\-target=github \\ + \-\-url=https://github.com/MichaelMure/git\-bug \\ \-\-login=$(LOGIN) \\ \-\-owner=$(OWNER) \\ \-\-project=$(PROJECT) \\ \-\-token=$(TOKEN) \\ - \-\-url=$(URL) \\ # For Gitlab git bug bridge configure \\ \-\-target=gitlab \\ - \-\-base\-url=$(BASE URL) \\ + \-\-url=https://gitlab.com/gitlab\-org/gitlab \\ \-\-login=$(LOGIN) \\ \-\-token=$(TOKEN) \\ - \-\-url=$(URL) \\ # For Jira git bug bridge configure \\ \-\-target=jira \\ - \-\-base\-url=$(BASE URL) \\ + \-\-url= \\ \-\-login=$(LOGIN) \\ \-\-project=$(PROJECT) \\ @@ -137,8 +136,8 @@ git bug bridge configure \\ # For Launchpad\-Preview git bug bridge configure \\ \-\-target=launchpad\-preview \\ + \-\-url=https://bugs.launchpad.net/ubuntu/ \\ \-\-project=$(PROJECT) \\ - \-\-url=$(URL) \\ .fi diff --git a/doc/md/git-bug_bridge_configure.md b/doc/md/git-bug_bridge_configure.md index 1e318848a2eb1eeb4d44ac18fa494f0ef5554eee..d498095679d11af7ab0038c5c86b7d546405a151 100644 --- a/doc/md/git-bug_bridge_configure.md +++ b/doc/md/git-bug_bridge_configure.md @@ -49,26 +49,25 @@ Successfully configured bridge: default # For Github git bug bridge configure \ --target=github \ + --url=https://github.com/MichaelMure/git-bug \ --login=$(LOGIN) \ --owner=$(OWNER) \ --project=$(PROJECT) \ --token=$(TOKEN) \ - --url=$(URL) \ # For Gitlab git bug bridge configure \ --target=gitlab \ - --base-url=$(BASE URL) \ + --url=https://gitlab.com/gitlab-org/gitlab \ --login=$(LOGIN) \ --token=$(TOKEN) \ - --url=$(URL) \ # For Jira git bug bridge configure \ --target=jira \ - --base-url=$(BASE URL) \ + --url= \ --login=$(LOGIN) \ --project=$(PROJECT) \ @@ -76,8 +75,8 @@ git bug bridge configure \ # For Launchpad-Preview git bug bridge configure \ --target=launchpad-preview \ + --url=https://bugs.launchpad.net/ubuntu/ \ --project=$(PROJECT) \ - --url=$(URL) \ ```