fix(helm): stop processing if lint can't find a chart

This exits with an error code if the path resolution fails to find a
chart.
pull/709/head
Matt Butcher 9 years ago
parent 5e1ef0ce86
commit 1fc04f7f20

@ -1,7 +1,10 @@
package main package main
import ( import (
"errors"
"fmt" "fmt"
"os"
"path/filepath"
"github.com/kubernetes/helm/pkg/lint" "github.com/kubernetes/helm/pkg/lint"
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -20,20 +23,29 @@ var lintCommand = &cobra.Command{
Use: "lint [flags] PATH", Use: "lint [flags] PATH",
Short: "Examines a chart for possible issues", Short: "Examines a chart for possible issues",
Long: longLintHelp, Long: longLintHelp,
Run: lintCmd, RunE: lintCmd,
} }
func init() { func init() {
RootCommand.AddCommand(lintCommand) RootCommand.AddCommand(lintCommand)
} }
func lintCmd(cmd *cobra.Command, args []string) { var errLintNoChart = errors.New("no chart found for linting (missing Chart.yaml).")
func lintCmd(cmd *cobra.Command, args []string) error {
path := "." path := "."
if len(args) > 0 { if len(args) > 0 {
path = args[0] path = args[0]
} }
// Guard: Error out of this is not a chart.
if _, err := os.Stat(filepath.Join(path, "Chart.yaml")); err != nil {
return errLintNoChart
}
issues := lint.All(path) issues := lint.All(path)
for _, i := range issues { for _, i := range issues {
fmt.Printf("%s\n", i) fmt.Printf("%s\n", i)
} }
return nil
} }

Loading…
Cancel
Save