From a9c98c1b06a4976fdb84c90b265b0afefc919c45 Mon Sep 17 00:00:00 2001 From: Matt Boersma Date: Tue, 23 Sep 2014 20:27:59 -0600 Subject: [PATCH] feat(cmd): refresh-units accepts -t for tag, branch, or SHA --- cmd/cmd.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index 36f0e9ccf5..aa71d02ed4 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -1,6 +1,7 @@ package cmd import ( + "errors" "fmt" "io/ioutil" "net/http" @@ -277,10 +278,12 @@ deisctl looks for unit files in these directories, in this order: - /var/lib/deis/units Usage: - deisctl refresh-units [-p ] + deisctl refresh-units [-p ] [-t ] Options: -p --path= where to save unit files [default: /var/lib/deis/units] + -t --tag= git tag, branch, or SHA to use when downloading unit files + [default: master] ` // parse command-line arguments args, err := docopt.Parse(usage, nil, true, "", false) @@ -295,7 +298,7 @@ Options: } // download and save the unit files to the specified path rootURL := "https://raw.githubusercontent.com/deis/deisctl/" - branch := "master" + tag := args["--tag"].(string) units := []string{ "deis-builder.service", "deis-builder-data.service", @@ -310,12 +313,15 @@ Options: "deis-router.service", } for _, unit := range units { - src := rootURL + branch + "/units/" + unit + src := rootURL + tag + "/units/" + unit dest := filepath.Join(dir, unit) res, err := http.Get(src) if err != nil { return err } + if res.StatusCode != 200 { + return errors.New(res.Status) + } defer res.Body.Close() data, err := ioutil.ReadAll(res.Body) if err != nil { @@ -324,7 +330,7 @@ Options: if err = ioutil.WriteFile(dest, data, 0644); err != nil { return err } - fmt.Printf("Refreshed %s from %s\n", unit, branch) + fmt.Printf("Refreshed %s from %s\n", unit, tag) } return nil }