-
Notifications
You must be signed in to change notification settings - Fork 24
/
setup.go
37 lines (31 loc) · 873 Bytes
/
setup.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
package git
import (
"github.com/Scalingo/cli/io"
"github.com/Scalingo/go-scalingo/debug"
errgo "gopkg.in/errgo.v1"
git "gopkg.in/src-d/go-git.v4"
gitconfig "gopkg.in/src-d/go-git.v4/config"
)
type SetupParams struct {
RemoteName string
}
func Setup(appName string, params SetupParams) error {
repo, err := git.PlainOpen(".")
if err != nil {
return errgo.Notef(err, "fail to initialize the Git repository")
}
url, err := getGitEndpoint(appName)
if err != nil {
return errgo.Notef(err, "fail to get the Git endpoint of this app")
}
debug.Println("Adding Git remote", url)
_, err = repo.CreateRemote(&gitconfig.RemoteConfig{
Name: params.RemoteName,
URLs: []string{url},
})
if err != nil {
return errgo.Notef(err, "fail to add the Git remote")
}
io.Status("Successfully added the Git remote", params.RemoteName, "on", appName)
return nil
}