|
|
@ -40,7 +40,7 @@ future releases.
|
|
|
|
var errNoRepositories = errors.New("no repositories found. You must add one before updating")
|
|
|
|
var errNoRepositories = errors.New("no repositories found. You must add one before updating")
|
|
|
|
|
|
|
|
|
|
|
|
type repoUpdateCmd struct {
|
|
|
|
type repoUpdateCmd struct {
|
|
|
|
update func([]*repo.ChartRepository, io.Writer, helmpath.Home)
|
|
|
|
update func([]*repo.ChartRepository, io.Writer, helmpath.Home) error
|
|
|
|
home helmpath.Home
|
|
|
|
home helmpath.Home
|
|
|
|
out io.Writer
|
|
|
|
out io.Writer
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -80,14 +80,15 @@ func (u *repoUpdateCmd) run() error {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
repos = append(repos, r)
|
|
|
|
repos = append(repos, r)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return u.update(repos, u.out, u.home)
|
|
|
|
u.update(repos, u.out, u.home)
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func updateCharts(repos []*repo.ChartRepository, out io.Writer, home helmpath.Home) {
|
|
|
|
func updateCharts(repos []*repo.ChartRepository, out io.Writer, home helmpath.Home) error {
|
|
|
|
fmt.Fprintln(out, "Hang tight while we grab the latest from your chart repositories...")
|
|
|
|
fmt.Fprintln(out, "Hang tight while we grab the latest from your chart repositories...")
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
var (
|
|
|
|
|
|
|
|
errorCounter int
|
|
|
|
|
|
|
|
wg sync.WaitGroup
|
|
|
|
|
|
|
|
)
|
|
|
|
for _, re := range repos {
|
|
|
|
for _, re := range repos {
|
|
|
|
wg.Add(1)
|
|
|
|
wg.Add(1)
|
|
|
|
go func(re *repo.ChartRepository) {
|
|
|
|
go func(re *repo.ChartRepository) {
|
|
|
@ -98,6 +99,7 @@ func updateCharts(repos []*repo.ChartRepository, out io.Writer, home helmpath.Ho
|
|
|
|
}
|
|
|
|
}
|
|
|
|
err := re.DownloadIndexFile(home.Cache())
|
|
|
|
err := re.DownloadIndexFile(home.Cache())
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
errorCounter++
|
|
|
|
fmt.Fprintf(out, "...Unable to get an update from the %q chart repository (%s):\n\t%s\n", re.Config.Name, re.Config.URL, err)
|
|
|
|
fmt.Fprintf(out, "...Unable to get an update from the %q chart repository (%s):\n\t%s\n", re.Config.Name, re.Config.URL, err)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
fmt.Fprintf(out, "...Successfully got an update from the %q chart repository\n", re.Config.Name)
|
|
|
|
fmt.Fprintf(out, "...Successfully got an update from the %q chart repository\n", re.Config.Name)
|
|
|
@ -105,5 +107,9 @@ func updateCharts(repos []*repo.ChartRepository, out io.Writer, home helmpath.Ho
|
|
|
|
}(re)
|
|
|
|
}(re)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
wg.Wait()
|
|
|
|
wg.Wait()
|
|
|
|
|
|
|
|
if errorCounter != 0 {
|
|
|
|
|
|
|
|
return errors.New("Update Failed. Check log for details")
|
|
|
|
|
|
|
|
}
|
|
|
|
fmt.Fprintln(out, "Update Complete. ⎈ Happy Helming!⎈ ")
|
|
|
|
fmt.Fprintln(out, "Update Complete. ⎈ Happy Helming!⎈ ")
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|