Merge pull request #36 from weaveworks/wcloud-service-flags

Add wcloud deploy --service flag
This commit is contained in:
Tom Wilkie
2016-08-25 11:00:02 +02:00
committed by GitHub
5 changed files with 34 additions and 4 deletions

1
.gitignore vendored
View File

@@ -2,5 +2,6 @@ cover/cover
socks/proxy socks/proxy
socks/image.tar socks/image.tar
runner/runner runner/runner
cmd/wcloud/wcloud
*.pyc *.pyc
*~ *~

View File

@@ -20,4 +20,5 @@ test:
- cd $SRCDIR/cover; make - cd $SRCDIR/cover; make
- cd $SRCDIR/socks; make - cd $SRCDIR/socks; make
- cd $SRCDIR/runner; make - cd $SRCDIR/runner; make
- cd $SRCDIR/cmd/wcloud; make

11
cmd/wcloud/Makefile Normal file
View File

@@ -0,0 +1,11 @@
.PHONY: all clean
all: wcloud
wcloud: *.go
go get ./$(@D)
go build -o $@ ./$(@D)
clean:
rm -rf wcloud
go clean ./...

View File

@@ -16,6 +16,19 @@ import (
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
) )
// ArrayFlags allows you to collect repeated flags
type ArrayFlags []string
func (a *ArrayFlags) String() string {
return strings.Join(*a, ",")
}
// Set implements flags.Value
func (a *ArrayFlags) Set(value string) error {
*a = append(*a, value)
return nil
}
func env(key, def string) string { func env(key, def string) string {
if val, ok := os.LookupEnv(key); ok { if val, ok := os.LookupEnv(key); ok {
return val return val
@@ -66,7 +79,9 @@ func deploy(c Client, args []string) {
var ( var (
flags = flag.NewFlagSet("", flag.ContinueOnError) flags = flag.NewFlagSet("", flag.ContinueOnError)
username = flags.String("u", "", "Username to report to deploy service (default with be current user)") username = flags.String("u", "", "Username to report to deploy service (default with be current user)")
services ArrayFlags
) )
flag.Var(&services, "service", "Service to update (can be repeated)")
if err := flags.Parse(args); err != nil { if err := flags.Parse(args); err != nil {
usage() usage()
return return
@@ -90,9 +105,10 @@ func deploy(c Client, args []string) {
*username = user.Username *username = user.Username
} }
deployment := Deployment{ deployment := Deployment{
ImageName: parts[0], ImageName: parts[0],
Version: parts[1], Version: parts[1],
TriggeringUser: *username, TriggeringUser: *username,
IntendedServices: services,
} }
if err := c.Deploy(deployment); err != nil { if err := c.Deploy(deployment); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())

View File

@@ -13,7 +13,8 @@ type Deployment struct {
Priority int `json:"priority"` Priority int `json:"priority"`
State string `json:"status"` State string `json:"status"`
TriggeringUser string `json:"triggering_user"` TriggeringUser string `json:"triggering_user"`
IntendedServices []string `json:"intended_services"`
} }
// Config for the deployment system for a user. // Config for the deployment system for a user.