forked from cbegin/graven
/
repotool.go
40 lines (32 loc) · 1.1 KB
/
repotool.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package repotool
import (
"fmt"
"github.com/cbegin/graven/config"
"github.com/cbegin/graven/domain"
)
var RepoRegistry = map[string]RepoTool{}
func init() {
RepoRegistry["github"] = &GithubRepoTool{}
RepoRegistry["maven"] = &MavenRepoTool{}
RepoRegistry["docker"] = &DockerRepotool{}
}
type RepoTool interface {
Login(project *domain.Project, repo string) error
Release(project *domain.Project, repo string) error
UploadDependency(project *domain.Project, repo string, dependencyFile, dependencyPath string) error
DownloadDependency(project *domain.Project, repo string, dependencyFile, dependencyPath string) error
}
func GenericLogin(project *domain.Project, repo string) error {
config := config.NewConfig()
if err := config.Read(); err != nil {
// ignore
}
if err := config.PromptPlainText(project.Name, fmt.Sprintf("%v-username", repo), "Username: "); err != nil {
}
if err := config.PromptSecret(project.Name, fmt.Sprintf("%v-password", repo), "Password: "); err != nil {
}
if err := config.Write(); err != nil {
return fmt.Errorf("Error writing configuration file. %v", err)
}
return nil
}