refactor: print stderr via fmt.Fprint with lipgloss.Sprintln instead of lipgloss.Fprintln

This commit is contained in:
2026-08-17 20:11:47 +04:00
parent e13eb9b8a8
commit c195ca2ab2
3 changed files with 23 additions and 27 deletions
+2 -6
View File
@@ -55,10 +55,6 @@ linters:
- wastedassign - wastedassign
settings: settings:
errcheck:
exclude-functions:
- charm.land/lipgloss/v2.Println
- charm.land/lipgloss/v2.Fprintln(os.Stderr)
staticcheck: staticcheck:
checks: checks:
- "all" - "all"
@@ -86,9 +82,9 @@ linters:
text: "SA5011" text: "SA5011"
- linters: - linters:
- errcheck
- gosec - gosec
text: "G104" source: "lipgloss\\.Println\\("
source: "lipgloss\\.(Print|Printf|Println|Fprint|Fprintf|Fprintln)\\("
formatters: formatters:
enable: enable:
+7 -7
View File
@@ -33,13 +33,13 @@ func main() {
utilsErr.OnType(func(err types.FieldValidationErrors) error { utilsErr.OnType(func(err types.FieldValidationErrors) error {
for _, fieldErr := range err.Errors { for _, fieldErr := range err.Errors {
if fieldErr.Value == "" { if fieldErr.Value == "" {
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
config.StyleYellow.Render(fmt.Sprintf("[VALIDATION] Field '%s': ", fieldErr.Field))+fieldErr.Err.Error(), config.StyleYellow.Render(fmt.Sprintf("[VALIDATION] Field '%s': ", fieldErr.Field))+fieldErr.Err.Error(),
) ))
} else { } else {
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
config.StyleYellow.Render(fmt.Sprintf("[VALIDATION] Field '%s' (%s): ", fieldErr.Field, fieldErr.Value))+fieldErr.Err.Error(), config.StyleYellow.Render(fmt.Sprintf("[VALIDATION] Field '%s' (%s): ", fieldErr.Field, fieldErr.Value))+fieldErr.Err.Error(),
) ))
} }
} }
os.Exit(1) os.Exit(1)
@@ -59,17 +59,17 @@ func main() {
) )
_ = utilsErr.MustHandle(err, _ = utilsErr.MustHandle(err,
utilsErr.OnType(func(err types.ProxyDialError) error { utilsErr.OnType(func(err types.ProxyDialError) error {
lipgloss.Fprintln(os.Stderr, config.StyleRed.Render("[PROXY] ")+err.Error()) fmt.Fprint(os.Stderr, lipgloss.Sprintln(config.StyleRed.Render("[PROXY] ")+err.Error()))
os.Exit(1) os.Exit(1)
return nil return nil
}), }),
utilsErr.OnSentinel(types.ErrScriptEmpty, func(err error) error { utilsErr.OnSentinel(types.ErrScriptEmpty, func(err error) error {
lipgloss.Fprintln(os.Stderr, config.StyleRed.Render("[SCRIPT] ")+err.Error()) fmt.Fprint(os.Stderr, lipgloss.Sprintln(config.StyleRed.Render("[SCRIPT] ")+err.Error()))
os.Exit(1) os.Exit(1)
return nil return nil
}), }),
utilsErr.OnType(func(err types.ScriptLoadError) error { utilsErr.OnType(func(err types.ScriptLoadError) error {
lipgloss.Fprintln(os.Stderr, config.StyleRed.Render("[SCRIPT] ")+err.Error()) fmt.Fprint(os.Stderr, lipgloss.Sprintln(config.StyleRed.Render("[SCRIPT] ")+err.Error()))
os.Exit(1) os.Exit(1)
return nil return nil
}), }),
+14 -14
View File
@@ -248,7 +248,7 @@ func (config Config) MarshalYAML() (any, error) {
func (config Config) Print() bool { func (config Config) Print() bool {
configYAML, err := yaml.Marshal(config) configYAML, err := yaml.Marshal(config)
if err != nil { if err != nil {
lipgloss.Fprintln(os.Stderr, StyleRed.Render("Error marshaling config to yaml: "+err.Error())) fmt.Fprint(os.Stderr, lipgloss.Sprintln(StyleRed.Render("Error marshaling config to yaml: "+err.Error())))
os.Exit(1) os.Exit(1)
} }
@@ -267,13 +267,13 @@ func (config Config) Print() bool {
glamour.WithWordWrap(0), glamour.WithWordWrap(0),
) )
if err != nil { if err != nil {
lipgloss.Fprintln(os.Stderr, StyleRed.Render(err.Error())) fmt.Fprint(os.Stderr, lipgloss.Sprintln(StyleRed.Render(err.Error())))
os.Exit(1) os.Exit(1)
} }
content, err := renderer.Render("```yaml\n" + string(configYAML) + "```") content, err := renderer.Render("```yaml\n" + string(configYAML) + "```")
if err != nil { if err != nil {
lipgloss.Fprintln(os.Stderr, StyleRed.Render(err.Error())) fmt.Fprint(os.Stderr, lipgloss.Sprintln(StyleRed.Render(err.Error())))
os.Exit(1) os.Exit(1)
} }
@@ -283,7 +283,7 @@ func (config Config) Print() bool {
m, err := p.Run() m, err := p.Run()
if err != nil { if err != nil {
lipgloss.Fprintln(os.Stderr, StyleRed.Render(err.Error())) fmt.Fprint(os.Stderr, lipgloss.Sprintln(StyleRed.Render(err.Error())))
os.Exit(1) os.Exit(1)
} }
@@ -613,11 +613,11 @@ func ReadAllConfigs() *Config {
_ = utilsErr.MustHandle(err, _ = utilsErr.MustHandle(err,
utilsErr.OnType(func(err types.CLIUnexpectedArgsError) error { utilsErr.OnType(func(err types.CLIUnexpectedArgsError) error {
cliParser.PrintHelp() cliParser.PrintHelp()
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
StyleYellow.Render( StyleYellow.Render(
"\nUnexpected CLI arguments provided: ", "\nUnexpected CLI arguments provided: ",
)+strings.Join(err.Args, ", "), )+strings.Join(err.Args, ", "),
) ))
os.Exit(1) os.Exit(1)
return nil return nil
}), }),
@@ -635,20 +635,20 @@ func ReadAllConfigs() *Config {
_ = utilsErr.MustHandle(err, _ = utilsErr.MustHandle(err,
utilsErr.OnType(func(err types.ConfigFileReadError) error { utilsErr.OnType(func(err types.ConfigFileReadError) error {
cliParser.PrintHelp() cliParser.PrintHelp()
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
StyleYellow.Render( StyleYellow.Render(
fmt.Sprintf("\nFailed to read config file (%s): ", configFile.Path())+err.Error(), fmt.Sprintf("\nFailed to read config file (%s): ", configFile.Path())+err.Error(),
), ),
) ))
os.Exit(1) os.Exit(1)
return nil return nil
}), }),
utilsErr.OnType(func(err types.UnmarshalError) error { utilsErr.OnType(func(err types.UnmarshalError) error {
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
StyleYellow.Render( StyleYellow.Render(
fmt.Sprintf("\nFailed to parse config file (%s): ", configFile.Path())+err.Error(), fmt.Sprintf("\nFailed to parse config file (%s): ", configFile.Path())+err.Error(),
), ),
) ))
os.Exit(1) os.Exit(1)
return nil return nil
}), }),
@@ -751,13 +751,13 @@ func validateScriptSource(script string) error {
func printParseErrors(parserName string, errors ...types.FieldParseError) { func printParseErrors(parserName string, errors ...types.FieldParseError) {
for _, fieldErr := range errors { for _, fieldErr := range errors {
if fieldErr.Value == "" { if fieldErr.Value == "" {
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
StyleYellow.Render(fmt.Sprintf("[%s] Field '%s': ", parserName, fieldErr.Field))+fieldErr.Err.Error(), StyleYellow.Render(fmt.Sprintf("[%s] Field '%s': ", parserName, fieldErr.Field))+fieldErr.Err.Error(),
) ))
} else { } else {
lipgloss.Fprintln(os.Stderr, fmt.Fprint(os.Stderr, lipgloss.Sprintln(
StyleYellow.Render(fmt.Sprintf("[%s] Field '%s' (%s): ", parserName, fieldErr.Field, fieldErr.Value))+fieldErr.Err.Error(), StyleYellow.Render(fmt.Sprintf("[%s] Field '%s' (%s): ", parserName, fieldErr.Field, fieldErr.Value))+fieldErr.Err.Error(),
) ))
} }
} }
} }