@@ -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) \
`
@@ -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")
@@ -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
@@ -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) \
```