From c4b76f27def61018858df3bad8794f1c75c29c8e Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Wed, 28 Aug 2019 09:46:12 -0700 Subject: [PATCH] fix(cmd/helm): user friendly error message when repos are not configured Signed-off-by: Adam Reese --- cmd/helm/repo.go | 6 ++++++ cmd/helm/repo_list.go | 5 +---- cmd/helm/repo_remove.go | 4 ++-- cmd/helm/repo_update.go | 10 +++------- cmd/helm/search_repo.go | 4 ++-- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/cmd/helm/repo.go b/cmd/helm/repo.go index afd5850d5..f20bde6c3 100644 --- a/cmd/helm/repo.go +++ b/cmd/helm/repo.go @@ -18,7 +18,9 @@ package main import ( "io" + "os" + "github.com/pkg/errors" "github.com/spf13/cobra" "helm.sh/helm/cmd/helm/require" @@ -48,3 +50,7 @@ func newRepoCmd(out io.Writer) *cobra.Command { return cmd } + +func isNotExist(err error) bool { + return os.IsNotExist(errors.Cause(err)) +} diff --git a/cmd/helm/repo_list.go b/cmd/helm/repo_list.go index 3228dbb1e..7825faebd 100644 --- a/cmd/helm/repo_list.go +++ b/cmd/helm/repo_list.go @@ -35,10 +35,7 @@ func newRepoListCmd(out io.Writer) *cobra.Command { Args: require.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { f, err := repo.LoadFile(settings.RepositoryConfig) - if err != nil { - return err - } - if len(f.Repositories) == 0 { + if isNotExist(err) || len(f.Repositories) == 0 { return errors.New("no repositories to show") } table := uitable.New() diff --git a/cmd/helm/repo_remove.go b/cmd/helm/repo_remove.go index 006908cd0..708c713dd 100644 --- a/cmd/helm/repo_remove.go +++ b/cmd/helm/repo_remove.go @@ -56,8 +56,8 @@ func newRepoRemoveCmd(out io.Writer) *cobra.Command { func (o *repoRemoveOptions) run(out io.Writer) error { r, err := repo.LoadFile(o.repoFile) - if err != nil { - return err + if isNotExist(err) || len(r.Repositories) == 0 { + return errors.New("no repositories configured") } if !r.Remove(o.name) { diff --git a/cmd/helm/repo_update.go b/cmd/helm/repo_update.go index 1d647366a..095fb84c4 100644 --- a/cmd/helm/repo_update.go +++ b/cmd/helm/repo_update.go @@ -59,13 +59,9 @@ func newRepoUpdateCmd(out io.Writer) *cobra.Command { } func (o *repoUpdateOptions) run(out io.Writer) error { - f, err := repo.LoadFile(o.repoFile) - if err != nil { - return err - } - - if len(f.Repositories) == 0 { - return errNoRepositories + f, err := repo.LoadFile(settings.RepositoryConfig) + if isNotExist(err) || len(f.Repositories) == 0 { + return errors.New("no repositories to update") } var repos []*repo.ChartRepository for _, cfg := range f.Repositories { diff --git a/cmd/helm/search_repo.go b/cmd/helm/search_repo.go index 0399490aa..21781d6da 100644 --- a/cmd/helm/search_repo.go +++ b/cmd/helm/search_repo.go @@ -147,8 +147,8 @@ func (o *searchRepoOptions) formatSearchResults(res []*search.Result) string { func (o *searchRepoOptions) buildIndex(out io.Writer) (*search.Index, error) { // Load the repositories.yaml rf, err := repo.LoadFile(o.repoFile) - if err != nil { - return nil, errors.Wrap(err, "loading repository config") + if isNotExist(err) || len(rf.Repositories) == 0 { + return nil, errors.New("no repositories configured") } i := search.NewIndex()