]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/go-getter/get_hg.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / go-getter / get_hg.go
index f38692270572987de80ec00a8d1191018a05a475..290649c910564ff816773df2bb17454017b41807 100644 (file)
@@ -1,6 +1,7 @@
 package getter
 
 import (
+       "context"
        "fmt"
        "net/url"
        "os"
@@ -9,18 +10,21 @@ import (
        "runtime"
 
        urlhelper "github.com/hashicorp/go-getter/helper/url"
-       "github.com/hashicorp/go-safetemp"
+       safetemp "github.com/hashicorp/go-safetemp"
 )
 
 // HgGetter is a Getter implementation that will download a module from
 // a Mercurial repository.
-type HgGetter struct{}
+type HgGetter struct {
+       getter
+}
 
 func (g *HgGetter) ClientMode(_ *url.URL) (ClientMode, error) {
        return ClientModeDir, nil
 }
 
 func (g *HgGetter) Get(dst string, u *url.URL) error {
+       ctx := g.Context()
        if _, err := exec.LookPath("hg"); err != nil {
                return fmt.Errorf("hg must be available and on the PATH")
        }
@@ -58,7 +62,7 @@ func (g *HgGetter) Get(dst string, u *url.URL) error {
                return err
        }
 
-       return g.update(dst, newURL, rev)
+       return g.update(ctx, dst, newURL, rev)
 }
 
 // GetFile for Hg doesn't support updating at this time. It will download
@@ -93,7 +97,7 @@ func (g *HgGetter) GetFile(dst string, u *url.URL) error {
                return err
        }
 
-       fg := &FileGetter{Copy: true}
+       fg := &FileGetter{Copy: true, getter: g.getter}
        return fg.GetFile(dst, u)
 }
 
@@ -108,13 +112,13 @@ func (g *HgGetter) pull(dst string, u *url.URL) error {
        return getRunCommand(cmd)
 }
 
-func (g *HgGetter) update(dst string, u *url.URL, rev string) error {
+func (g *HgGetter) update(ctx context.Context, dst string, u *url.URL, rev string) error {
        args := []string{"update"}
        if rev != "" {
                args = append(args, rev)
        }
 
-       cmd := exec.Command("hg", args...)
+       cmd := exec.CommandContext(ctx, "hg", args...)
        cmd.Dir = dst
        return getRunCommand(cmd)
 }