diff --git a/cmd/helm/chart.go b/cmd/helm/chart.go index a58d5f83b..ab6e5524b 100644 --- a/cmd/helm/chart.go +++ b/cmd/helm/chart.go @@ -19,9 +19,13 @@ package main import ( "errors" "path/filepath" + "fmt" + "os" + "github.com/codegangsta/cli" "github.com/codegangsta/cli" "github.com/kubernetes/helm/pkg/chart" + "github.com/kubernetes/helm/pkg/format" ) func init() { @@ -61,6 +65,13 @@ func chartCommands() cli.Command { Usage: "given a chart, show all the deployments that reference it.", ArgsUsage: "CHART", }, + { + Name: "package", + Aliases: []string{"pack"}, + Usage: "Given a chart directory, package it into a release.", + ArgsUsage: "PATH", + Action: func(c *cli.Context) { run(c, pack) }, + }, }, } } @@ -81,4 +92,33 @@ func createChart(c *cli.Context) error { _, err := chart.Create(cf, dir) return err + +func pack(cxt *cli.Context) error { + args := cxt.Args() + if len(args) < 1 { + return errors.New("'helm package' requires a path to a chart directory as an argument") + } + + dir := args[0] + if fi, err := os.Stat(dir); err != nil { + return fmt.Errorf("Could not find directory %s: %s", dir, err) + } else if !fi.IsDir() { + return fmt.Errorf("Not a directory: %s", dir) + } + + fname, err := packDir(dir) + if err != nil { + return err + } + format.Msg(fname) + return nil +} + +func packDir(dir string) (string, error) { + c, err := chart.LoadDir(dir) + if err != nil { + return "", fmt.Errorf("Failed to load %s: %s", dir, err) + } + + return chart.Save(c, ".") } diff --git a/cmd/helm/pack.go b/cmd/helm/pack.go deleted file mode 100644 index 216bb5fb5..000000000 --- a/cmd/helm/pack.go +++ /dev/null @@ -1,71 +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" - "fmt" - "os" - - "github.com/codegangsta/cli" - "github.com/kubernetes/helm/pkg/chart" - "github.com/kubernetes/helm/pkg/format" -) - -func init() { - addCommands(packageCmd()) -} - -func packageCmd() cli.Command { - return cli.Command{ - Name: "package", - Aliases: []string{"pack"}, - Usage: "Given a chart directory, package it into a release.", - ArgsUsage: "PATH", - Action: func(c *cli.Context) { run(c, pack) }, - } -} - -func pack(cxt *cli.Context) error { - args := cxt.Args() - if len(args) < 1 { - return errors.New("'helm package' requires a path to a chart directory as an argument") - } - - dir := args[0] - if fi, err := os.Stat(dir); err != nil { - return fmt.Errorf("Could not find directory %s: %s", dir, err) - } else if !fi.IsDir() { - return fmt.Errorf("Not a directory: %s", dir) - } - - fname, err := packDir(dir) - if err != nil { - return err - } - format.Msg(fname) - return nil -} - -func packDir(dir string) (string, error) { - c, err := chart.LoadDir(dir) - if err != nil { - return "", fmt.Errorf("Failed to load %s: %s", dir, err) - } - - return chart.Save(c, ".") -}