Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubecolor for openSUSE:Factory checked in at 2026-09-28 10:45:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubecolor (Old) and /work/SRC/openSUSE:Factory/.kubecolor.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubecolor" Mon Sep 28 10:45:04 2026 rev:7 rq:1380767 version:0.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kubecolor/kubecolor.changes 2026-08-28 19:50:22.012235719 +0200 +++ /work/SRC/openSUSE:Factory/.kubecolor.new.383539/kubecolor.changes 2026-09-28 10:45:34.370740970 +0200 @@ -1,0 +2,26 @@ +Sun Sep 20 07:31:20 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.8.0: + * Features + - Provide automatic themes that switch light and dark + automatically in #363 + - kubecolor is now able to automatically detect if it should + use dark or light theme. + - New theme presets: + - auto: resolves to light or dark + - protanopia: resolves to protanopia-light or protanopia-dark + - deuteranopia: resolves to deuteranopia-light or + deuteranopia-dark + - tritanopia: resolves to tritanopia-light or tritanopia-dark + - If kubecolor is unable to read your terminal emulator's + background color, then any "auto" preset will fall back to + their "dark" variant. + - This also changes the default preset (YAML) / + --kubecolor-theme (flag) / KUBECOLOR_PRESET (env var) config + from dark to auto. + * Dependencies + - Bump k8s.io/apimachinery from 0.36.3 to 0.36.4 in #362 + - Bump the github-actions group with 2 updates in #365 + - Bump k8s.io/apimachinery from 0.36.4 to 0.37.0 in #364 + +------------------------------------------------------------------- Old: ---- kubecolor-0.7.1.obscpio New: ---- kubecolor-0.8.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubecolor.spec ++++++ --- /var/tmp/diff_new_pack.XBWRlr/_old 2026-09-28 10:45:36.240819319 +0200 +++ /var/tmp/diff_new_pack.XBWRlr/_new 2026-09-28 10:45:36.245819528 +0200 @@ -17,7 +17,7 @@ Name: kubecolor -Version: 0.7.1 +Version: 0.8.0 Release: 0 Summary: Colorize your kubectl output License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.XBWRlr/_old 2026-09-28 10:45:36.322822755 +0200 +++ /var/tmp/diff_new_pack.XBWRlr/_new 2026-09-28 10:45:36.332823173 +0200 @@ -1,10 +1,10 @@ <services> <service mode="manual" name="obs_scm"> - <param name="url">https://github.com/kubecolor/kubecolor</param> + <param name="url">https://github.com/kubecolor/kubecolor.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.7.1</param> - <param name="match-tag">v0.7.1</param> + <param name="revision">refs/tags/v0.8.0</param> + <param name="match-tag">v0.8.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.XBWRlr/_old 2026-09-28 10:45:36.387825478 +0200 +++ /var/tmp/diff_new_pack.XBWRlr/_new 2026-09-28 10:45:36.393825729 +0200 @@ -1,6 +1,8 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kubecolor/kubecolor</param> - <param name="changesrevision">fd9e6f787f15c20e4864926334855931512ca407</param></service></servicedata> + <param name="changesrevision">fd9e6f787f15c20e4864926334855931512ca407</param></service><service name="tar_scm"> + <param name="url">https://github.com/kubecolor/kubecolor.git</param> + <param name="changesrevision">342330236d3620d0a84fcce1462a8a7108cd56a0</param></service></servicedata> (No newline at EOF) ++++++ kubecolor-0.7.1.obscpio -> kubecolor-0.8.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/command/config.go new/kubecolor-0.8.0/command/config.go --- old/kubecolor-0.7.1/command/config.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/command/config.go 2026-09-19 16:05:29.000000000 +0200 @@ -21,15 +21,15 @@ Flags FlagSet } -func ResolveConfig(inputArgs []string) (*Config, error) { +func ResolveConfig(inputArgs []string, term config.TermInfo) (*Config, error) { v, err := config.LoadViper() if err != nil { return nil, err } - return ResolveConfigViper(inputArgs, v) + return ResolveConfigViper(inputArgs, v, term) } -func ResolveConfigViper(inputArgs []string, v *viper.Viper) (*Config, error) { +func ResolveConfigViper(inputArgs []string, v *viper.Viper, term config.TermInfo) (*Config, error) { cfg := &Config{} if lightThemeEnv, ok, err := parseBoolEnv("KUBECOLOR_LIGHT_BACKGROUND"); err != nil { @@ -116,7 +116,7 @@ } } - newCfg, err := config.Unmarshal(v) + newCfg, err := config.Unmarshal(v, term) if err != nil { return nil, err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/command/config_test.go new/kubecolor-0.8.0/command/config_test.go --- old/kubecolor-0.7.1/command/config_test.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/command/config_test.go 2026-09-19 16:05:29.000000000 +0200 @@ -15,6 +15,7 @@ args []string env map[string]string expectedConf *Config + term config.TermInfo }{ { name: "no config", @@ -25,7 +26,7 @@ ObjFreshThreshold: nil, Paging: config.PagingDefault, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, }, ArgsPassthrough: []string{"get", "pods"}, ForceColor: ColorLevelUnset, @@ -56,7 +57,7 @@ ObjFreshThreshold: nil, Paging: config.PagingDefault, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, }, ForceColor: ColorLevelNone, ArgsPassthrough: []string{"get", "pods"}, @@ -72,7 +73,7 @@ ObjFreshThreshold: config.MustParseDurationSlice("1m"), Paging: config.PagingDefault, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, }, ForceColor: ColorLevelUnset, ArgsPassthrough: []string{"get", "pods"}, @@ -102,7 +103,7 @@ Kubectl: "kubectl", Paging: config.PagingDefault, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, }, ForceColor: ColorLevelAuto, ArgsPassthrough: []string{"get", "pods"}, @@ -117,7 +118,7 @@ Kubectl: "kubectl", Paging: config.PagingDefault, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, }, ForceColor: ColorLevelTrueColor, ArgsPassthrough: []string{"get", "pods"}, @@ -136,7 +137,7 @@ Pager: "most", Paging: config.PagingAuto, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, }, ArgsPassthrough: []string{"get", "pods"}, }, @@ -152,27 +153,60 @@ Kubectl: "kubectl", Paging: config.PagingNever, Theme: *testconfig.DarkTheme, - Preset: config.PresetDark, + Preset: config.PresetAuto, + }, + ArgsPassthrough: []string{"get", "pods"}, + }, + }, + { + name: "Auto dark theme", + args: []string{"get", "pods"}, + env: map[string]string{ + "KUBECOLOR_PRESET": string(config.PresetAuto), + }, + term: testconfig.DarkTerm, + expectedConf: &Config{ + Config: &config.Config{ + Kubectl: "kubectl", + Paging: config.PagingNever, + Theme: *testconfig.DarkTheme, + Preset: config.PresetAuto, + }, + ArgsPassthrough: []string{"get", "pods"}, + }, + }, + { + name: "Auto light theme", + args: []string{"get", "pods"}, + env: map[string]string{ + "KUBECOLOR_PRESET": string(config.PresetAuto), + }, + term: testconfig.LightTerm, + expectedConf: &Config{ + Config: &config.Config{ + Kubectl: "kubectl", + Paging: config.PagingNever, + Theme: *testconfig.LightTheme, + Preset: config.PresetAuto, }, ArgsPassthrough: []string{"get", "pods"}, }, }, } - for _, tt := range tests { - tt := tt - t.Run(tt.name, func(t *testing.T) { + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { os.Clearenv() - for k, v := range tt.env { + for k, v := range test.env { testutil.Setenv(t, k, v) } - conf, err := ResolveConfig(tt.args) + conf, err := ResolveConfig(test.args, test.term) testutil.MustNoError(t, err) // Don't test flags field - tt.expectedConf.Flags = conf.Flags + test.expectedConf.Flags = conf.Flags - testutil.MustEqual(t, tt.expectedConf, conf) + testutil.MustEqual(t, test.expectedConf, conf) }) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/command/runner.go new/kubecolor-0.8.0/command/runner.go --- old/kubecolor-0.7.1/command/runner.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/command/runner.go 2026-09-19 16:05:29.000000000 +0200 @@ -17,6 +17,7 @@ "github.com/kubecolor/kubecolor/printer" "github.com/mattn/go-colorable" "github.com/mattn/go-isatty" + "github.com/muesli/termenv" "github.com/xo/terminfo" ) @@ -52,7 +53,7 @@ } func Run(rawArgs []string, version string) error { - cfg, err := ResolveConfig(rawArgs) + cfg, err := ResolveConfig(rawArgs, termenv.DefaultOutput()) if err != nil { return fmt.Errorf("resolve config: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config/config.go new/kubecolor-0.8.0/config/config.go --- old/kubecolor-0.7.1/config/config.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/config/config.go 2026-09-19 16:05:29.000000000 +0200 @@ -89,8 +89,8 @@ return v, nil } -func Unmarshal(v *viper.Viper) (*Config, error) { - if err := ApplyThemePreset(v); err != nil { +func Unmarshal(v *viper.Viper, term TermInfo) (*Config, error) { + if err := ApplyThemePreset(v, term); err != nil { return nil, err } @@ -105,12 +105,12 @@ return cfg, nil } -func ApplyThemePreset(v *viper.Viper) error { +func ApplyThemePreset(v *viper.Viper, term TermInfo) error { preset, err := ParsePreset(v.GetString(PresetKey)) if err != nil { return fmt.Errorf("parse preset: %w", err) } - slog.Debug("Applying theme", "preset", preset) + preset = ResolveAutoThemePreset(preset, term) theme := NewBaseTheme(preset) applyViperDefaults(theme, v) return nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config/config_test.go new/kubecolor-0.8.0/config/config_test.go --- old/kubecolor-0.7.1/config/config_test.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/config/config_test.go 2026-09-19 16:05:29.000000000 +0200 @@ -12,7 +12,7 @@ testutil.Setenv(t, "KUBECOLOR_PRESET", "light") v := NewViper() - cfg, err := Unmarshal(v) + cfg, err := Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, PresetLight, cfg.Preset, "Read from cfg.Preset") @@ -24,7 +24,7 @@ testutil.Setenv(t, "KUBECOLOR_THEME_TABLE_HEADER", "red") v := NewViper() - cfg, err := Unmarshal(v) + cfg, err := Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, "red", cfg.Theme.Table.Header.Source, "Read from cfg.Theme.Table.Header") @@ -36,27 +36,27 @@ os.Clearenv() testutil.Setenv(t, "PAGER", "more") - cfg, err := Unmarshal(v) + cfg, err := Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, "", cfg.Pager) v = NewViper() // this time with more as default pager - cfg, err = Unmarshal(v) + cfg, err = Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, "more", cfg.Pager) testutil.Setenv(t, "KUBECOLOR_PAGER", "more2") - cfg, err = Unmarshal(v) + cfg, err = Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, "more2", cfg.Pager) testutil.Setenv(t, "KUBECOLOR_PAGING", string(PagingNever)) - cfg, err = Unmarshal(v) + cfg, err = Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, PagingNever, cfg.Paging) testutil.Setenv(t, "KUBECOLOR_PAGING", string(PagingAuto)) - cfg, err = Unmarshal(v) + cfg, err = Unmarshal(v, nil) testutil.MustNoError(t, err) testutil.Equal(t, PagingAuto, cfg.Paging) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config/preset.go new/kubecolor-0.8.0/config/preset.go --- old/kubecolor-0.7.1/config/preset.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/config/preset.go 2026-09-19 16:05:29.000000000 +0200 @@ -15,14 +15,18 @@ PresetNone Preset = "" // Default themes + PresetAuto Preset = "auto" PresetDark Preset = "dark" PresetLight Preset = "light" // Color blind focused themes + PresetProtAuto Preset = "protanopia" PresetProtDark Preset = "protanopia-dark" PresetProtLight Preset = "protanopia-light" + PresetDeutAuto Preset = "deuteranopia" PresetDeutDark Preset = "deuteranopia-dark" PresetDeutLight Preset = "deuteranopia-light" + PresetTritAuto Preset = "tritanopia" PresetTritDark Preset = "tritanopia-dark" PresetTritLight Preset = "tritanopia-light" @@ -36,7 +40,7 @@ ) var ( - PresetDefault = PresetDark + PresetDefault = PresetAuto // AllPresets is used in parsing and places like the // internal/cmd/configschema package to show all available options. @@ -45,14 +49,18 @@ PresetNone, // Default themes + PresetAuto, PresetDark, PresetLight, // Color blind focused themes + PresetProtAuto, PresetProtDark, PresetProtLight, + PresetDeutAuto, PresetDeutDark, PresetDeutLight, + PresetTritAuto, PresetTritDark, PresetTritLight, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config/testconfig/testconfig.go new/kubecolor-0.8.0/config/testconfig/testconfig.go --- old/kubecolor-0.7.1/config/testconfig/testconfig.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/config/testconfig/testconfig.go 2026-09-19 16:05:29.000000000 +0200 @@ -12,6 +12,9 @@ DarkTheme *config.Theme LightTheme *config.Theme NullTheme *config.Theme + + DarkTerm = NewTermInfoWithDarkBackground(true) + LightTerm = NewTermInfoWithDarkBackground(false) ) func init() { @@ -19,19 +22,34 @@ color.ForceColor() color.Enable = true - DarkTheme = NewTheme(config.PresetDark) - LightTheme = NewTheme(config.PresetLight) + DarkTheme = NewTheme(config.PresetDark, nil) + LightTheme = NewTheme(config.PresetLight, nil) NullTheme = &config.Theme{} } // NewTheme returns a theme from a preset that's meant to be used in testing. -func NewTheme(preset config.Preset) *config.Theme { +func NewTheme(preset config.Preset, term config.TermInfo) *config.Theme { v := config.NewViper() // mapstructure doesn't like "type X string" values, so we have to convert it via string(...) v.Set(config.PresetKey, string(preset)) - cfg, err := config.Unmarshal(v) + cfg, err := config.Unmarshal(v, term) if err != nil { panic(fmt.Errorf("unmarshal config: %w", err)) } return &cfg.Theme } + +func NewTermInfoWithDarkBackground(hasDark bool) config.TermInfo { + return terminfo{hasDarkBackground: hasDark} +} + +type terminfo struct { + hasDarkBackground bool +} + +var _ config.TermInfo = terminfo{} + +// HasDarkBackground implements [config.TermInfo]. +func (t terminfo) HasDarkBackground() bool { + return t.hasDarkBackground +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config/theme.go new/kubecolor-0.8.0/config/theme.go --- old/kubecolor-0.7.1/config/theme.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/config/theme.go 2026-09-19 16:05:29.000000000 +0200 @@ -2,6 +2,7 @@ import ( "fmt" + "log/slog" "reflect" "strings" @@ -10,6 +11,40 @@ "github.com/spf13/viper" ) +var autoPresets = map[Preset]struct { + dark Preset + light Preset +}{ + PresetAuto: {dark: PresetDark, light: PresetLight}, + PresetDeutAuto: {dark: PresetDeutDark, light: PresetDeutLight}, + PresetProtAuto: {dark: PresetProtDark, light: PresetProtLight}, + PresetTritAuto: {dark: PresetTritDark, light: PresetTritLight}, +} + +// TermInfo is set of methods for reading terminal information. +// +// Designed to be compatible with [github.com/muesli/termenv.Output] +type TermInfo interface { + HasDarkBackground() bool +} + +// ResolveAutoThemePreset switches theme preset depending on terminal info, +// for example changing "auto" to "dark" or "light" theme preset +func ResolveAutoThemePreset(preset Preset, term TermInfo) Preset { + if pair, ok := autoPresets[preset]; ok { + if term == nil || term.HasDarkBackground() { + slog.Debug("Applying automatic dark theme", "preset", preset, "newPreset", pair.dark) + preset = pair.dark + } else { + slog.Debug("Applying automatic light theme", "preset", preset, "newPreset", pair.light) + preset = pair.light + } + } else { + slog.Debug("Applying theme", "preset", preset) + } + return preset +} + // NewBaseTheme returns the base color schema depending on the dark/light setting func NewBaseTheme(preset Preset) *Theme { switch preset { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config/theme_test.go new/kubecolor-0.8.0/config/theme_test.go --- old/kubecolor-0.7.1/config/theme_test.go 1970-01-01 01:00:00.000000000 +0100 +++ new/kubecolor-0.8.0/config/theme_test.go 2026-09-19 16:05:29.000000000 +0200 @@ -0,0 +1,49 @@ +package config_test + +import ( + "testing" + + "github.com/kubecolor/kubecolor/config" + "github.com/kubecolor/kubecolor/config/testconfig" +) + +func TestResolveAutoTheme(t *testing.T) { + t.Parallel() + tests := []struct { + preset config.Preset + want config.Preset + term config.TermInfo + }{ + {preset: config.PresetAuto, want: config.PresetLight, term: testconfig.LightTerm}, + {preset: config.PresetAuto, want: config.PresetDark, term: testconfig.DarkTerm}, + {preset: config.PresetAuto, want: config.PresetDark, term: nil}, + {preset: config.PresetProtAuto, want: config.PresetProtLight, term: testconfig.LightTerm}, + {preset: config.PresetProtAuto, want: config.PresetProtDark, term: testconfig.DarkTerm}, + {preset: config.PresetProtAuto, want: config.PresetProtDark, term: nil}, + + {preset: config.PresetDark, want: config.PresetDark, term: testconfig.LightTerm}, + {preset: config.PresetDark, want: config.PresetDark, term: testconfig.DarkTerm}, + {preset: config.PresetDark, want: config.PresetDark, term: nil}, + {preset: config.PresetLight, want: config.PresetLight, term: testconfig.LightTerm}, + {preset: config.PresetLight, want: config.PresetLight, term: testconfig.DarkTerm}, + {preset: config.PresetLight, want: config.PresetLight, term: nil}, + } + + for _, test := range tests { + nameSuffix := "" + switch { + case test.term == nil: + nameSuffix = "/nil term" + case test.term.HasDarkBackground(): + nameSuffix = "/dark term" + default: + nameSuffix = "/light term" + } + t.Run(test.preset.String()+nameSuffix, func(t *testing.T) { + got := config.ResolveAutoThemePreset(test.preset, test.term) + if test.want != got { + t.Errorf("want %q, got %q", test.want, got) + } + }) + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/config-schema.json new/kubecolor-0.8.0/config-schema.json --- old/kubecolor-0.7.1/config-schema.json 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/config-schema.json 2026-09-19 16:05:29.000000000 +0200 @@ -73,12 +73,16 @@ "type": "string", "enum": [ "none", + "auto", "dark", "light", + "protanopia", "protanopia-dark", "protanopia-light", + "deuteranopia", "deuteranopia-dark", "deuteranopia-light", + "tritanopia", "tritanopia-dark", "tritanopia-light", "pre-0.3.0-dark", @@ -88,7 +92,7 @@ ], "title": "Color theme preset", "description": "Preset is a set of defaults for the color theme.", - "default": "dark" + "default": "auto" }, "theme": { "properties": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/go.mod new/kubecolor-0.8.0/go.mod --- old/kubecolor-0.7.1/go.mod 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/go.mod 2026-09-19 16:05:29.000000000 +0200 @@ -11,19 +11,23 @@ github.com/mattn/go-colorable v0.1.15 github.com/mattn/go-isatty v0.0.24 github.com/mitchellh/mapstructure v1.5.0 + github.com/muesli/termenv v0.16.0 github.com/spf13/viper v1.21.0 github.com/xo/terminfo v1.0.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.36.3 + k8s.io/apimachinery v0.37.0 ) require ( + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/buger/jsonparser v1.6.1 // indirect github.com/fsnotify/fsnotify v1.10.1 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/pb33f/ordered-map/v2 v2.3.1 // indirect github.com/pelletier/go-toml/v2 v2.4.3 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect @@ -34,5 +38,4 @@ golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect golang.org/x/sys v0.47.0 // indirect golang.org/x/text v0.40.0 // indirect - gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/go.sum new/kubecolor-0.8.0/go.sum --- old/kubecolor-0.7.1/go.sum 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/go.sum 2026-09-19 16:05:29.000000000 +0200 @@ -1,5 +1,7 @@ github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/buger/jsonparser v1.6.1 h1:I0phFv0PlbLHnM7TZAVjZ2MJ2/eWRTDyuO7GLR98IEs= @@ -26,18 +28,24 @@ github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI= github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= +github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= github.com/pb33f/ordered-map/v2 v2.3.1 h1:5319HDO0aw4DA4gzi+zv4FXU9UlSs3xGZ40wcP1nBjY= github.com/pb33f/ordered-map/v2 v2.3.1/go.mod h1:qxFQgd0PkVUtOMCkTapqotNgzRhMPL7VvaHKbd1HnmQ= github.com/pelletier/go-toml/v2 v2.4.3 h1:GTRvJQutkOSftxIFD5xw9aepkYNuPWmVJpffdDPYVpY= github.com/pelletier/go-toml/v2 v2.4.3/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= @@ -67,9 +75,9 @@ golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.36.3 h1:PkzMRBRG8joFD8EhCuQAtNPvJlxb82FwplP26HIzvAM= -k8s.io/apimachinery v0.36.3/go.mod h1:cTSjBWgPe/6CQyBKzY/hDIRWCQQQeK0mfLbml0UYFHE= +k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= +k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/internal/cmd/configdoc/main.go new/kubecolor-0.8.0/internal/cmd/configdoc/main.go --- old/kubecolor-0.7.1/internal/cmd/configdoc/main.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/internal/cmd/configdoc/main.go 2026-09-19 16:05:29.000000000 +0200 @@ -41,7 +41,7 @@ func (p *Program) Run() error { v := config.NewViper() - if err := config.ApplyThemePreset(v); err != nil { + if err := config.ApplyThemePreset(v, nil); err != nil { return err } p.viper = v diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/internal/cmd/imagegen/main.go new/kubecolor-0.8.0/internal/cmd/imagegen/main.go --- old/kubecolor-0.7.1/internal/cmd/imagegen/main.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/internal/cmd/imagegen/main.go 2026-09-19 16:05:29.000000000 +0200 @@ -255,7 +255,7 @@ } v := config.NewViper() - cfg, err := command.ResolveConfigViper(cmd.Args, v) + cfg, err := command.ResolveConfigViper(cmd.Args, v, nil) if err != nil { return "", err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubecolor-0.7.1/internal/testcorpus/run.go new/kubecolor-0.8.0/internal/testcorpus/run.go --- old/kubecolor-0.7.1/internal/testcorpus/run.go 2026-08-25 14:59:44.000000000 +0200 +++ new/kubecolor-0.8.0/internal/testcorpus/run.go 2026-09-19 16:05:29.000000000 +0200 @@ -133,7 +133,7 @@ } v := config.NewViper() - cfg, err := command.ResolveConfigViper(args, v) + cfg, err := command.ResolveConfigViper(args, v, nil) if err != nil { return fmt.Sprintf("config error: %s", err) } ++++++ kubecolor.obsinfo ++++++ --- /var/tmp/diff_new_pack.XBWRlr/_old 2026-09-28 10:45:36.988850658 +0200 +++ /var/tmp/diff_new_pack.XBWRlr/_new 2026-09-28 10:45:36.997851035 +0200 @@ -1,5 +1,5 @@ name: kubecolor -version: 0.7.1 -mtime: 1787662784 -commit: fd9e6f787f15c20e4864926334855931512ca407 +version: 0.8.0 +mtime: 1789826729 +commit: 342330236d3620d0a84fcce1462a8a7108cd56a0 ++++++ vendor.tar.gz ++++++ ++++ 22163 lines of diff (skipped)
