aboutsummaryrefslogtreecommitdiffstats
path: root/bug
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-08-12 21:09:30 +0200
committerMichael Muré <batolettre@gmail.com>2018-08-12 21:09:30 +0200
commite2f4b027c946831c3f4f119d87a80513c7cf8fdc (patch)
treeb2ec57c89c49062ab2e8adeacb2646d2f152db80 /bug
parent721ed3248e8bf167a89df14d9fc2bf5b0fe45753 (diff)
downloadgit-bug-e2f4b027c946831c3f4f119d87a80513c7cf8fdc.tar.gz
termui: implement push/pull
Diffstat (limited to 'bug')
-rw-r--r--bug/bug_actions.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/bug/bug_actions.go b/bug/bug_actions.go
index b2bc8b7d..30fc9876 100644
--- a/bug/bug_actions.go
+++ b/bug/bug_actions.go
@@ -13,25 +13,28 @@ const MsgMergeInvalid = "invalid data"
const MsgMergeUpdated = "updated"
const MsgMergeNothing = "nothing to do"
-func Fetch(repo repository.Repo, remote string) error {
+func Fetch(repo repository.Repo, remote string) (string, error) {
remoteRefSpec := fmt.Sprintf(bugsRemoteRefPattern, remote)
fetchRefSpec := fmt.Sprintf("%s*:%s*", bugsRefPattern, remoteRefSpec)
return repo.FetchRefs(remote, fetchRefSpec)
}
-func Push(repo repository.Repo, remote string) error {
+func Push(repo repository.Repo, remote string) (string, error) {
return repo.PushRefs(remote, bugsRefPattern+"*")
}
func Pull(repo repository.Repo, out io.Writer, remote string) error {
fmt.Fprintf(out, "Fetching remote ...\n")
- if err := Fetch(repo, remote); err != nil {
+ stdout, err := Fetch(repo, remote)
+ if err != nil {
return err
}
- fmt.Fprintf(out, "\nMerging data ...\n")
+ out.Write([]byte(stdout))
+
+ fmt.Fprintf(out, "Merging data ...\n")
for merge := range MergeAll(repo, remote) {
if merge.Err != nil {
@@ -42,6 +45,7 @@ func Pull(repo repository.Repo, out io.Writer, remote string) error {
fmt.Fprintf(out, "%s: %s\n", merge.HumanId, merge.Status)
}
}
+
return nil
}