diff --git a/cmd/helm/deployment.go b/cmd/helm/deployment.go index 28e93a3ea..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()) } @@ -57,6 +71,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", @@ -102,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) @@ -113,3 +128,17 @@ func deleteDeployment(c *cli.Context) error { } return nil } + +func showDeployment(c *cli.Context) error { + args := c.Args() + if len(args) < 1 { + return errMissingDeploymentArg + } + name := args[0] + deployment, err := NewClient(c).GetDeployment(name) + if err != nil { + return err + } + tmpl := template.Must(template.New("show").Parse(defaultShowFormat)) + return tmpl.Execute(os.Stdout, 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) -}