aboutsummaryrefslogtreecommitdiffstats
path: root/bridge/launchpad
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/launchpad')
-rw-r--r--bridge/launchpad/config.go33
-rw-r--r--bridge/launchpad/import.go6
-rw-r--r--bridge/launchpad/launchpad.go19
3 files changed, 21 insertions, 37 deletions
diff --git a/bridge/launchpad/config.go b/bridge/launchpad/config.go
index edbd941d..e029fad3 100644
--- a/bridge/launchpad/config.go
+++ b/bridge/launchpad/config.go
@@ -1,27 +1,18 @@
package launchpad
import (
- "bufio"
"errors"
"fmt"
"net/http"
- "os"
"regexp"
- "strings"
- "time"
"github.com/MichaelMure/git-bug/bridge/core"
"github.com/MichaelMure/git-bug/cache"
+ "github.com/MichaelMure/git-bug/input"
)
var ErrBadProjectURL = errors.New("bad Launchpad project URL")
-const (
- target = "launchpad-preview"
- keyProject = "project"
- defaultTimeout = 60 * time.Second
-)
-
func (l *Launchpad) Configure(repo *cache.RepoCache, params core.BridgeParams) (core.Configuration, error) {
if params.TokenRaw != "" {
fmt.Println("warning: token params are ineffective for a Launchpad bridge")
@@ -45,7 +36,7 @@ func (l *Launchpad) Configure(repo *cache.RepoCache, params core.BridgeParams) (
project, err = splitURL(params.URL)
default:
// get project name from terminal prompt
- project, err = promptProjectName()
+ project, err = input.Prompt("Launchpad project name", "project name", input.Required)
}
if err != nil {
@@ -86,26 +77,6 @@ func (*Launchpad) ValidateConfig(conf core.Configuration) error {
return nil
}
-func promptProjectName() (string, error) {
- for {
- fmt.Print("Launchpad project name: ")
-
- line, err := bufio.NewReader(os.Stdin).ReadString('\n')
- if err != nil {
- return "", err
- }
-
- line = strings.TrimRight(line, "\n")
-
- if line == "" {
- fmt.Println("Project name is empty")
- continue
- }
-
- return line, nil
- }
-}
-
func validateProject(project string) (bool, error) {
url := fmt.Sprintf("%s/%s", apiRoot, project)
diff --git a/bridge/launchpad/import.go b/bridge/launchpad/import.go
index 619631b3..5bca8e63 100644
--- a/bridge/launchpad/import.go
+++ b/bridge/launchpad/import.go
@@ -20,11 +20,6 @@ func (li *launchpadImporter) Init(repo *cache.RepoCache, conf core.Configuration
return nil
}
-const (
- metaKeyLaunchpadID = "launchpad-id"
- metaKeyLaunchpadLogin = "launchpad-login"
-)
-
func (li *launchpadImporter) ensurePerson(repo *cache.RepoCache, owner LPPerson) (*cache.IdentityCache, error) {
// Look first in the cache
i, err := repo.ResolveIdentityImmutableMetadata(metaKeyLaunchpadLogin, owner.Login)
@@ -38,7 +33,6 @@ func (li *launchpadImporter) ensurePerson(repo *cache.RepoCache, owner LPPerson)
return repo.NewIdentityRaw(
owner.Name,
"",
- owner.Login,
"",
map[string]string{
metaKeyLaunchpadLogin: owner.Login,
diff --git a/bridge/launchpad/launchpad.go b/bridge/launchpad/launchpad.go
index 030d9169..b4fcdd00 100644
--- a/bridge/launchpad/launchpad.go
+++ b/bridge/launchpad/launchpad.go
@@ -2,15 +2,34 @@
package launchpad
import (
+ "time"
+
"github.com/MichaelMure/git-bug/bridge/core"
)
+const (
+ target = "launchpad-preview"
+
+ metaKeyLaunchpadID = "launchpad-id"
+ metaKeyLaunchpadLogin = "launchpad-login"
+
+ keyProject = "project"
+
+ defaultTimeout = 60 * time.Second
+)
+
+var _ core.BridgeImpl = &Launchpad{}
+
type Launchpad struct{}
func (*Launchpad) Target() string {
return "launchpad-preview"
}
+func (l *Launchpad) LoginMetaKey() string {
+ return metaKeyLaunchpadLogin
+}
+
func (*Launchpad) NewImporter() core.Importer {
return &launchpadImporter{}
}