Skip to content

Commit

Permalink
Added color builtin
Browse files Browse the repository at this point in the history
  • Loading branch information
Michel Casabianca committed Aug 21, 2024
1 parent 8ea23c5 commit 93dd488
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 2 deletions.
2 changes: 1 addition & 1 deletion build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Neon Build File (http://github.com/c4s4/neon)

doc: Build file for NeON
extends: [golang]
extends: [c4s4/build/golang.yml]
default: [clean, fmt, lint, test, bugs]
expose: [clean, fmt, lint, test, bugs, install, release]
configuration: '~/.neon/github.yml'
Expand Down
107 changes: 107 additions & 0 deletions neon/builtin/color.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package builtin

import (
"github.com/c4s4/neon/neon/build"
colorize "github.com/fatih/color"
)

func init() {
build.AddBuiltin(build.BuiltinDesc{
Name: "color",
Func: color,
Help: `Colorize string.
Arguments:
- The name of the color (black, red, green, yellow, blue, magenta, cyan or white).
- The string to colorize.
Color capitalization determines the intensity of the color:
- Use standard color names (such as black) for normal colors.
- Use capitalized color names (such as Black) for bold colors.
- Use uppercase color names (such as BLACK) for bold background colors.
- Use uncapitalized uppercase color names (such as bLACK) for background colors.
Returns:
- The colorized string.
Examples:
# green message
color("green", "OK")
# returns: string "OK" colorized in green`,
})
}

func color(color, text string) string {
switch color {
case "black":
return colorize.New(colorize.FgBlack).Sprint(text)
case "red":
return colorize.New(colorize.FgRed).Sprint(text)
case "green":
return colorize.New(colorize.FgGreen).Sprint(text)
case "yellow":
return colorize.New(colorize.FgYellow).Sprint(text)
case "blue":
return colorize.New(colorize.FgBlue).Sprint(text)
case "magenta":
return colorize.New(colorize.FgMagenta).Sprint(text)
case "cyan":
return colorize.New(colorize.FgCyan).Sprint(text)
case "white":
return colorize.New(colorize.FgWhite).Sprint(text)
case "Black":
return colorize.New(colorize.FgBlack, colorize.Bold).Sprint(text)
case "Red":
return colorize.New(colorize.FgRed, colorize.Bold).Sprint(text)
case "Green":
return colorize.New(colorize.FgGreen, colorize.Bold).Sprint(text)
case "Yellow":
return colorize.New(colorize.FgYellow, colorize.Bold).Sprint(text)
case "Blue":
return colorize.New(colorize.FgBlue, colorize.Bold).Sprint(text)
case "Magenta":
return colorize.New(colorize.FgMagenta, colorize.Bold).Sprint(text)
case "Cyan":
return colorize.New(colorize.FgCyan, colorize.Bold).Sprint(text)
case "White":
return colorize.New(colorize.FgWhite, colorize.Bold).Sprint(text)
case "bLACK":
return colorize.New(colorize.BgBlack).Sprint(text)
case "rED":
return colorize.New(colorize.BgRed).Sprint(text)
case "gREEN":
return colorize.New(colorize.BgGreen).Sprint(text)
case "yELLOW":
return colorize.New(colorize.BgYellow).Sprint(text)
case "bLUE":
return colorize.New(colorize.BgBlue).Sprint(text)
case "mAGENTA":
return colorize.New(colorize.BgMagenta).Sprint(text)
case "cYAN":
return colorize.New(colorize.BgCyan).Sprint(text)
case "wHITE":
return colorize.New(colorize.BgWhite).Sprint(text)
case "BLACK":
return colorize.New(colorize.BgBlack, colorize.Bold).Sprint(text)
case "RED":
return colorize.New(colorize.BgRed, colorize.Bold).Sprint(text)
case "GREEN":
return colorize.New(colorize.BgGreen, colorize.Bold).Sprint(text)
case "YELLOW":
return colorize.New(colorize.BgYellow, colorize.Bold).Sprint(text)
case "BLUE":
return colorize.New(colorize.BgBlue, colorize.Bold).Sprint(text)
case "MAGENTA":
return colorize.New(colorize.BgMagenta, colorize.Bold).Sprint(text)
case "CYAN":
return colorize.New(colorize.BgCyan, colorize.Bold).Sprint(text)
case "WHITE":
return colorize.New(colorize.BgWhite, colorize.Bold).Sprint(text)
default:
return text
}
}
2 changes: 1 addition & 1 deletion neon/builtin/find.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Arguments:
Returns:
- Files as a list of strings.
- Files as a sorted list of strings.
Examples:
Expand Down

0 comments on commit 93dd488

Please sign in to comment.