36 lines
607 B
Go
36 lines
607 B
Go
package app
|
|
|
|
import (
|
|
"github.com/roboll/helmfile/pkg/state"
|
|
)
|
|
|
|
type Context struct {
|
|
updatedRepos map[string]struct{}
|
|
}
|
|
|
|
func NewContext() Context {
|
|
return Context{
|
|
updatedRepos: map[string]struct{}{},
|
|
}
|
|
}
|
|
|
|
func (ctx Context) SyncReposOnce(st *state.HelmState, helm state.RepoUpdater) []error {
|
|
var errs []error
|
|
|
|
allUpdated := true
|
|
for _, r := range st.Repositories {
|
|
_, exists := ctx.updatedRepos[r.Name]
|
|
allUpdated = allUpdated && exists
|
|
}
|
|
|
|
if !allUpdated {
|
|
errs = st.SyncRepos(helm)
|
|
|
|
for _, r := range st.Repositories {
|
|
ctx.updatedRepos[r.Name] = struct{}{}
|
|
}
|
|
}
|
|
|
|
return errs
|
|
}
|