mirror of
https://github.com/helm/helm.git
synced 2026-05-22 09:56:35 -04:00
refactor: use slices.Backward to simplify the code
Signed-off-by: box4wangjing <box4wangjing@outlook.com>
This commit is contained in:
parent
0f09636c79
commit
432fc8a217
5 changed files with 20 additions and 16 deletions
|
|
@ -19,6 +19,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
chart "helm.sh/helm/v4/internal/chart/v3"
|
||||
|
|
@ -242,8 +243,8 @@ func set(path []string, data map[string]any) map[string]any {
|
|||
return nil
|
||||
}
|
||||
cur := data
|
||||
for i := len(path) - 1; i >= 0; i-- {
|
||||
cur = map[string]any{path[i]: cur}
|
||||
for _, v := range slices.Backward(path) {
|
||||
cur = map[string]any{v: cur}
|
||||
}
|
||||
return cur
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,8 +150,8 @@ func (cfg *Configuration) execHookWithDelayedShutdown(rl *release.Release, hook
|
|||
return func() error {
|
||||
// If all hooks are successful, check the annotation of each hook to determine whether the hook should be deleted
|
||||
// or output should be logged under succeeded condition. If so, then clear the corresponding resource object in each hook
|
||||
for i := len(executingHooks) - 1; i >= 0; i-- {
|
||||
h := executingHooks[i]
|
||||
for _, v := range slices.Backward(executingHooks) {
|
||||
h := v
|
||||
if err := cfg.outputLogsByPolicy(h, rl.Namespace, release.HookOutputOnSucceeded); err != nil {
|
||||
// We log here as we still want to attempt hook resource deletion even if output logging fails.
|
||||
log.Printf("error outputting logs for hook failure: %v", err)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"helm.sh/helm/v4/internal/copystructure"
|
||||
|
|
@ -242,8 +243,8 @@ func set(path []string, data map[string]any) map[string]any {
|
|||
return nil
|
||||
}
|
||||
cur := data
|
||||
for i := len(path) - 1; i >= 0; i-- {
|
||||
cur = map[string]any{path[i]: cur}
|
||||
for _, v := range slices.Backward(path) {
|
||||
cur = map[string]any{v: cur}
|
||||
}
|
||||
return cur
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"slices"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
|
|
@ -207,8 +208,8 @@ func getHistory(client *action.History, name string) (releaseHistory, error) {
|
|||
}
|
||||
|
||||
func getReleaseHistory(rls []*release.Release) (history releaseHistory) {
|
||||
for i := len(rls) - 1; i >= 0; i-- {
|
||||
r := rls[i]
|
||||
for _, v := range slices.Backward(rls) {
|
||||
r := v
|
||||
c := formatChartName(r.Chart)
|
||||
s := r.Info.Status.String()
|
||||
v := r.Version
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import (
|
|||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
|
@ -356,21 +357,21 @@ func loadIndex(data []byte, source string) (*IndexFile, error) {
|
|||
}
|
||||
|
||||
for name, cvs := range i.Entries {
|
||||
for idx := len(cvs) - 1; idx >= 0; idx-- {
|
||||
if cvs[idx] == nil {
|
||||
for idx, v := range slices.Backward(cvs) {
|
||||
if v == nil {
|
||||
slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q from %s: empty entry", name, source))
|
||||
cvs = append(cvs[:idx], cvs[idx+1:]...)
|
||||
continue
|
||||
}
|
||||
// When metadata section missing, initialize with no data
|
||||
if cvs[idx].Metadata == nil {
|
||||
cvs[idx].Metadata = &chart.Metadata{}
|
||||
if v.Metadata == nil {
|
||||
v.Metadata = &chart.Metadata{}
|
||||
}
|
||||
if cvs[idx].APIVersion == "" {
|
||||
cvs[idx].APIVersion = chart.APIVersionV1
|
||||
if v.APIVersion == "" {
|
||||
v.APIVersion = chart.APIVersionV1
|
||||
}
|
||||
if err := cvs[idx].Validate(); ignoreSkippableChartValidationError(err) != nil {
|
||||
slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q %q from %s: %s", name, cvs[idx].Version, source, err))
|
||||
if err := v.Validate(); ignoreSkippableChartValidationError(err) != nil {
|
||||
slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q %q from %s: %s", name, v.Version, source, err))
|
||||
cvs = append(cvs[:idx], cvs[idx+1:]...)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue