println 256 colors
ansiColor('xterm') { node('controller') {
List matrix = []
List line = []
[38, 48].collect { fgbg ->
(1..255).collect { color ->
"""\033[${fgbg};5;${color}m ${String.format("%03d", color)} \033[0m"""
}
}.flatten().eachWithIndex{ c, idx ->
line += [c]
if ( 4 == (idx+1)%12 ) {
matrix.add( line )
line = []
}
}
println matrix.collect{ it.join(' ') }.join('\n')
}}
or
ansiColor('xterm') { node('controller') { List matrix = [] List line = [] (0..7).collect{ attr -> [38, 48].collect { fgbg -> (0..255).collect { color -> "\033[${attr};${fgbg};5;${color}m" + """ \\033[${attr};${fgbg};${String.format("%03d", color)}m """ + "\033[0m" } } }.flatten().eachWithIndex{ c, idx -> line += [c] if ( 4 == (idx+1)%6 ) { matrix.add( line ) line = [] } } println matrix.collect{ it.join(' ') }.join('\n') }}
color matrix libs
import groovy.transform.Field
/**
* <color> regular color
* bold<Color> bold color
* br<Color> high intensity (bright color)
* it<Color> italic
* on<Color> <color> as background
**/
@Field final Map<String, String> COLOR_MATRIX = [
black : '\033[0;38;5;0m' ,
red : '\033[0;38;5;1m' ,
green : '\033[0;38;5;2m' ,
darkGreen : '\033[0;38;5;022m' ,
yellow : '\033[0;38;5;3m' ,
blue : '\033[0;38;5;4m' ,
magenta : '\033[0;38;5;5m' ,
cyan : '\033[0;38;5;6m' ,
white : '\033[0;38;5;7m' ,
gray : '\033[0;38;5;8m' ,
lightGray : '\033[0;38;5;244m' ,
orange : '\033[0;38;5;208m' ,
orchid : '\033[0;38;5;207m' ,
gold : '\033[0;38;5;178m' ,
greenYellow : '\033[0;38;5;154m' ,
appleGreen : '\033[0;38;5;190m' ,
brRed : '\033[0;38;5;9m' ,
boldGreen : '\033[1;38;5;10m' ,
boldDarkGreen : '\033[1;38;5;022m' ,
brGreen : '\033[0;38;5;10m' ,
brYellow : '\033[0;38;5;11m' ,
brBlue : '\033[0;38;5;12m' ,
brMagenta : '\033[0;38;5;13m' ,
brCyan : '\033[0;38;5;14m' ,
brWhite : '\033[0;38;5;15m' ,
onBlack : '\033[0;48;5;0m' ,
onRed : '\033[0;48;5;1m' ,
onGreen : '\033[0;48;5;2m' ,
onDarkGreen : '\033[0;48;5;022m' ,
onYellow : '\033[0;48;5;3m' ,
onBlue : '\033[0;48;5;4m' ,
onMagenta : '\033[0;48;5;5m' ,
onCyan : '\033[0;48;5;6m' ,
onWhite : '\033[0;48;5;7m' ,
onGray : '\033[0;48;5;8m' ,
onLightGray : '\033[0;48;5;244m' ,
onOrange : '\033[0;48;5;208m' ,
onOrchid : '\033[0;48;5;207m' ,
boldBlack : '\033[1;38;5;0m' ,
boldRed : '\033[1;38;5;1m' ,
boldGreen : '\033[1;38;5;2m' ,
boldDarkGreen : '\033[1;38;5;022m' ,
boldYellow : '\033[1;38;5;3m' ,
boldBlue : '\033[1;38;5;4m' ,
boldMagenta : '\033[1;38;5;5m' ,
boldCyan : '\033[1;38;5;6m' ,
boldWhite : '\033[1;38;5;7m' ,
boldGray : '\033[1;38;5;8m' ,
itBlack : '\033[3;38;5;0m' ,
itRed : '\033[3;38;5;1m' ,
itGreen : '\033[3;38;5;2m' ,
itDarkGreen : '\033[3;38;5;022m' ,
itYellow : '\033[3;38;5;3m' ,
itBlue : '\033[3;38;5;4m' ,
itMagenta : '\033[3;38;5;5m' ,
itCyan : '\033[3;38;5;6m' ,
itWhite : '\033[3;38;5;7m' ,
itGray : '\033[3;38;5;8m' ,
itLightGray : '\033[3;38;5;244m' ,
itOrange : '\033[3;38;5;208m' ,
itOrchid : '\033[3;38;5;207m' ,
ESC : '\033[0m'
]
def show( String color, String str ) {
if ( COLOR_MATRIX.containsKey(color) ) {
println COLOR_MATRIX.get('red') + "WARN: the color name: ${color} cannot be found in matrix" + COLOR_MATRIX.get('ESC')
}
return COLOR_MATRIX.getOrDefault( color, 'black' ) + str + COLOR_MATRIX.get('ESC')
}
- others
import groovy.transform.Field @Field final Map<String, String> COLOR_MATRIX = [ black : '\033[0;38;5;0m' , red : '\033[0;38;5;1m' , green : '\033[0;38;5;2m' , darkGreen : '\033[0;38;5;022m' , yellow : '\033[0;38;5;3m' , blue : '\033[0;38;5;4m' , magenta : '\033[0;38;5;5m' , cyan : '\033[0;38;5;6m' , white : '\033[0;38;5;7m' , gray : '\033[0;38;5;8m' , lightGray : '\033[0;38;5;244m' , orange : '\033[0;38;5;208m' , orchid : '\033[0;38;5;207m' , gold : '\033[0;38;5;178m' , greenYellow : '\033[0;38;5;154m' , appleGreen : '\033[0;38;5;190m' , brRed : '\033[0;38;5;9m' , boldGreen : '\033[1;38;5;10m' , boldDarkGreen : '\033[1;38;5;022m' , brGreen : '\033[0;38;5;10m' , brYellow : '\033[0;38;5;11m' , brBlue : '\033[0;38;5;12m' , brMagenta : '\033[0;38;5;13m' , brCyan : '\033[0;38;5;14m' , brWhite : '\033[0;38;5;15m' , onBlack : '\033[0;48;5;0m' , onRed : '\033[0;48;5;1m' , onGreen : '\033[0;48;5;2m' , onDarkGreen : '\033[0;48;5;022m' , onYellow : '\033[0;48;5;3m' , onBlue : '\033[0;48;5;4m' , onMagenta : '\033[0;48;5;5m' , onCyan : '\033[0;48;5;6m' , onWhite : '\033[0;48;5;7m' , onGray : '\033[0;48;5;8m' , onLightGray : '\033[0;48;5;244m' , onOrange : '\033[0;48;5;208m' , onOrchid : '\033[0;48;5;207m' , boldBlack : '\033[1;38;5;0m' , boldRed : '\033[1;38;5;1m' , boldGreen : '\033[1;38;5;2m' , boldDarkGreen : '\033[1;38;5;022m' , boldYellow : '\033[1;38;5;3m' , boldBlue : '\033[1;38;5;4m' , boldMagenta : '\033[1;38;5;5m' , boldCyan : '\033[1;38;5;6m' , boldWhite : '\033[1;38;5;7m' , boldGray : '\033[1;38;5;8m' , itBlack : '\033[3;38;5;0m' , itRed : '\033[3;38;5;1m' , itGreen : '\033[3;38;5;2m' , itDarkGreen : '\033[3;38;5;022m' , itYellow : '\033[3;38;5;3m' , itBlue : '\033[3;38;5;4m' , itMagenta : '\033[3;38;5;5m' , itCyan : '\033[3;38;5;6m' , itWhite : '\033[3;38;5;7m' , itGray : '\033[3;38;5;8m' , itLightGray : '\033[3;38;5;244m' , itOrange : '\033[3;38;5;208m' , itOrchid : '\033[3;38;5;207m' , ESC : '\033[0m' ]
customized colors
xterm
NAME | COLOR | BRIGHT |
---|---|---|
black | #000000 |
#4C4C4C |
red | #CD0000 |
#FF0000 |
green | #4C8045 |
#84A729 |
yellow | #F1BD3F |
#F2C867 |
blue | #1E90FF |
#4682B4 |
megenta | #CD00CD |
#FF00FF |
cyan | #5a9196 |
#6CB2B9 |
white | #E5E5E5 |
#FFFFFF |
[!TIP] references:
original settings:
NAME COLOR BRIGHT black #000000
#4C4C4C
red #CD0000
#FF0000
green #00CD00
#00FF00
yellow #CDCD00
#FFFF00
blue #1E90FF
#4682B4
megenta #CD00CD
#FF00FF
cyan #00CDCD
#00FFFF
white #E5E5E5
#FFFFFF