fix(cmd): lazy load client

pull/921/head
Adam Reese 8 years ago
parent 5013da3d25
commit 4d92bd086f

@ -19,6 +19,7 @@ package main
import (
"errors"
"fmt"
"io"
"os"
"strings"
@ -63,7 +64,7 @@ Environment:
$HELM_HOST Set an alternative Tiller host. The format is host:port (default ":44134").
`
func newRootCmd() *cobra.Command {
func newRootCmd(out io.Writer) *cobra.Command {
cmd := &cobra.Command{
Use: "helm",
Short: "The Helm package manager for Kubernetes.",
@ -83,18 +84,17 @@ func newRootCmd() *cobra.Command {
p.StringVar(&tillerHost, "host", thost, "address of tiller. Overrides $HELM_HOST.")
p.StringVarP(&tillerNamespace, "namespace", "", "", "kubernetes namespace")
p.BoolVarP(&flagDebug, "debug", "", false, "enable verbose output")
cmd.AddCommand(newListCmd(nil, out))
return cmd
}
// RootCommand is the top-level command for Helm.
var RootCommand = newRootCmd()
var RootCommand = newRootCmd(os.Stdout)
func main() {
out := os.Stdout
client := helm.NewClient(helm.HelmHost(helm.Config.ServAddr))
cmd := RootCommand
cmd.AddCommand(newListCmd(client, out))
if err := cmd.Execute(); err != nil {
os.Exit(1)
}

@ -65,10 +65,7 @@ type lister struct {
}
func newListCmd(client helm.Interface, out io.Writer) *cobra.Command {
list := &lister{
client: client,
out: out,
}
list := &lister{out: out}
cmd := &cobra.Command{
Use: "list [flags] [FILTER]",
Short: "list releases",
@ -79,6 +76,9 @@ func newListCmd(client helm.Interface, out io.Writer) *cobra.Command {
if len(args) > 0 {
list.filter = strings.Join(args, " ")
}
if list.client == nil {
list.client = helm.NewClient(helm.HelmHost(helm.Config.ServAddr))
}
return list.run()
},
}

Loading…
Cancel
Save