From 9506757a1f1fede8a274803fe5be31f41c90ebe0 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Mon, 21 Mar 2016 16:19:08 -0700 Subject: [PATCH 1/2] feat(cli): implement helm deployment show --- cmd/helm/deployment.go | 14 ++++++++++++ cmd/helm/get.go | 50 ------------------------------------------ 2 files changed, 14 insertions(+), 50 deletions(-) delete mode 100644 cmd/helm/get.go diff --git a/cmd/helm/deployment.go b/cmd/helm/deployment.go index 28e93a3ea..d9d34ac20 100644 --- a/cmd/helm/deployment.go +++ b/cmd/helm/deployment.go @@ -57,6 +57,7 @@ func deploymentCommands() cli.Command { Aliases: []string{"info"}, Usage: "Provide details about this deployment.", ArgsUsage: "", + Action: func(c *cli.Context) { run(c, showDeployment) }, }, { Name: "list", @@ -113,3 +114,16 @@ func deleteDeployment(c *cli.Context) error { } return nil } + +func showDeployment(c *cli.Context) error { + args := c.Args() + if len(args) < 1 { + return errors.New("First argument, deployment name, is required. Try 'helm get --help'") + } + name := args[0] + deployment, err := NewClient(c).GetDeployment(name) + if err != nil { + return err + } + return format.YAML(deployment) +} diff --git a/cmd/helm/get.go b/cmd/helm/get.go deleted file mode 100644 index 119593ca8..000000000 --- a/cmd/helm/get.go +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package main - -import ( - "errors" - - "github.com/codegangsta/cli" - "github.com/kubernetes/helm/pkg/format" -) - -func init() { - addCommands(getCmd()) -} - -func getCmd() cli.Command { - return cli.Command{ - Name: "get", - ArgsUsage: "DEPLOYMENT", - Usage: "Retrieves the supplied deployment", - Action: func(c *cli.Context) { run(c, get) }, - } -} - -func get(c *cli.Context) error { - args := c.Args() - if len(args) < 1 { - return errors.New("First argument, deployment name, is required. Try 'helm get --help'") - } - name := args[0] - deployment, err := NewClient(c).GetDeployment(name) - if err != nil { - return err - } - return format.YAML(deployment) -} From 8f43b059ce14a2cb346b07689fe5236e766da716 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Tue, 22 Mar 2016 14:05:45 -0700 Subject: [PATCH 2/2] feat(cli): use template for deployment format --- cmd/helm/deployment.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/cmd/helm/deployment.go b/cmd/helm/deployment.go index d9d34ac20..b77d74d78 100644 --- a/cmd/helm/deployment.go +++ b/cmd/helm/deployment.go @@ -18,12 +18,26 @@ package main import ( "errors" + "os" "regexp" + "text/template" "github.com/codegangsta/cli" "github.com/kubernetes/helm/pkg/format" ) +var errMissingDeploymentArg = errors.New("First argument, deployment name, is required. Try 'helm get --help'") + +const defaultShowFormat = `Name: {{.Name}} +Status: {{.State.Status}} +{{- with .State.Errors}} +Errors: +{{- range .}} + {{.}} +{{- end}} +{{- end}} +` + func init() { addCommands(deploymentCommands()) } @@ -103,7 +117,7 @@ func listDeployments(c *cli.Context) error { func deleteDeployment(c *cli.Context) error { args := c.Args() if len(args) < 1 { - return errors.New("First argument, deployment name, is required. Try 'helm get --help'") + return errMissingDeploymentArg } for _, name := range args { deployment, err := NewClient(c).DeleteDeployment(name) @@ -118,12 +132,13 @@ func deleteDeployment(c *cli.Context) error { func showDeployment(c *cli.Context) error { args := c.Args() if len(args) < 1 { - return errors.New("First argument, deployment name, is required. Try 'helm get --help'") + return errMissingDeploymentArg } name := args[0] deployment, err := NewClient(c).GetDeployment(name) if err != nil { return err } - return format.YAML(deployment) + tmpl := template.Must(template.New("show").Parse(defaultShowFormat)) + return tmpl.Execute(os.Stdout, deployment) }