mirror of
https://github.com/anotherhadi/ilovetui.git
synced 2026-08-21 03:55:48 +02:00
5f99fa7521
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
65 lines
1.9 KiB
Go
65 lines
1.9 KiB
Go
package style
|
|
|
|
type colorsYAML struct {
|
|
Base00 string `yaml:"base00"`
|
|
Base01 string `yaml:"base01"`
|
|
Base02 string `yaml:"base02"`
|
|
Base03 string `yaml:"base03"`
|
|
Base04 string `yaml:"base04"`
|
|
Base05 string `yaml:"base05"`
|
|
Base06 string `yaml:"base06"`
|
|
Base07 string `yaml:"base07"`
|
|
Base08 string `yaml:"base08"`
|
|
Base09 string `yaml:"base09"`
|
|
Base0A string `yaml:"base0a"`
|
|
Base0B string `yaml:"base0b"`
|
|
Base0C string `yaml:"base0c"`
|
|
Base0D string `yaml:"base0d"`
|
|
Base0E string `yaml:"base0e"`
|
|
Base0F string `yaml:"base0f"`
|
|
}
|
|
|
|
type configYAML struct {
|
|
Colors colorsYAML `yaml:"colors"`
|
|
NerdFonts bool `yaml:"nerd_fonts"`
|
|
Border string `yaml:"border"`
|
|
}
|
|
|
|
func pickString(base, user string) string {
|
|
if user != "" {
|
|
return user
|
|
}
|
|
return base
|
|
}
|
|
|
|
func mergeConfig(base, user configYAML) configYAML {
|
|
return configYAML{
|
|
Colors: mergeColors(base.Colors, user.Colors),
|
|
// The embedded default is always nerd_fonts: false, so this just
|
|
// reduces to "whatever the user set".
|
|
NerdFonts: base.NerdFonts || user.NerdFonts,
|
|
Border: pickString(base.Border, user.Border),
|
|
}
|
|
}
|
|
|
|
func mergeColors(base, user colorsYAML) colorsYAML {
|
|
return colorsYAML{
|
|
Base00: pickString(base.Base00, user.Base00),
|
|
Base01: pickString(base.Base01, user.Base01),
|
|
Base02: pickString(base.Base02, user.Base02),
|
|
Base03: pickString(base.Base03, user.Base03),
|
|
Base04: pickString(base.Base04, user.Base04),
|
|
Base05: pickString(base.Base05, user.Base05),
|
|
Base06: pickString(base.Base06, user.Base06),
|
|
Base07: pickString(base.Base07, user.Base07),
|
|
Base08: pickString(base.Base08, user.Base08),
|
|
Base09: pickString(base.Base09, user.Base09),
|
|
Base0A: pickString(base.Base0A, user.Base0A),
|
|
Base0B: pickString(base.Base0B, user.Base0B),
|
|
Base0C: pickString(base.Base0C, user.Base0C),
|
|
Base0D: pickString(base.Base0D, user.Base0D),
|
|
Base0E: pickString(base.Base0E, user.Base0E),
|
|
Base0F: pickString(base.Base0F, user.Base0F),
|
|
}
|
|
}
|