mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			203 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Go
		
	
	
	
package aec
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
)
 | 
						|
 | 
						|
// RGB3Bit is a 3bit RGB color.
 | 
						|
type RGB3Bit uint8
 | 
						|
 | 
						|
// RGB8Bit is a 8bit RGB color.
 | 
						|
type RGB8Bit uint8
 | 
						|
 | 
						|
func newSGR(n uint) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dm", n))
 | 
						|
}
 | 
						|
 | 
						|
// NewRGB3Bit create a RGB3Bit from given RGB.
 | 
						|
func NewRGB3Bit(r, g, b uint8) RGB3Bit {
 | 
						|
	return RGB3Bit((r >> 7) | ((g >> 6) & 0x2) | ((b >> 5) & 0x4))
 | 
						|
}
 | 
						|
 | 
						|
// NewRGB8Bit create a RGB8Bit from given RGB.
 | 
						|
func NewRGB8Bit(r, g, b uint8) RGB8Bit {
 | 
						|
	return RGB8Bit(16 + 36*(r/43) + 6*(g/43) + b/43)
 | 
						|
}
 | 
						|
 | 
						|
// Color3BitF set the foreground color of text.
 | 
						|
func Color3BitF(c RGB3Bit) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dm", c+30))
 | 
						|
}
 | 
						|
 | 
						|
// Color3BitB set the background color of text.
 | 
						|
func Color3BitB(c RGB3Bit) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dm", c+40))
 | 
						|
}
 | 
						|
 | 
						|
// Color8BitF set the foreground color of text.
 | 
						|
func Color8BitF(c RGB8Bit) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"38;5;%dm", c))
 | 
						|
}
 | 
						|
 | 
						|
// Color8BitB set the background color of text.
 | 
						|
func Color8BitB(c RGB8Bit) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"48;5;%dm", c))
 | 
						|
}
 | 
						|
 | 
						|
// FullColorF set the foreground color of text.
 | 
						|
func FullColorF(r, g, b uint8) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"38;2;%d;%d;%dm", r, g, b))
 | 
						|
}
 | 
						|
 | 
						|
// FullColorB set the foreground color of text.
 | 
						|
func FullColorB(r, g, b uint8) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"48;2;%d;%d;%dm", r, g, b))
 | 
						|
}
 | 
						|
 | 
						|
// Style
 | 
						|
var (
 | 
						|
	// Bold set the text style to bold or increased intensity.
 | 
						|
	Bold ANSI
 | 
						|
 | 
						|
	// Faint set the text style to faint.
 | 
						|
	Faint ANSI
 | 
						|
 | 
						|
	// Italic set the text style to italic.
 | 
						|
	Italic ANSI
 | 
						|
 | 
						|
	// Underline set the text style to underline.
 | 
						|
	Underline ANSI
 | 
						|
 | 
						|
	// BlinkSlow set the text style to slow blink.
 | 
						|
	BlinkSlow ANSI
 | 
						|
 | 
						|
	// BlinkRapid set the text style to rapid blink.
 | 
						|
	BlinkRapid ANSI
 | 
						|
 | 
						|
	// Inverse swap the foreground color and background color.
 | 
						|
	Inverse ANSI
 | 
						|
 | 
						|
	// Conceal set the text style to conceal.
 | 
						|
	Conceal ANSI
 | 
						|
 | 
						|
	// CrossOut set the text style to crossed out.
 | 
						|
	CrossOut ANSI
 | 
						|
 | 
						|
	// Frame set the text style to framed.
 | 
						|
	Frame ANSI
 | 
						|
 | 
						|
	// Encircle set the text style to encircled.
 | 
						|
	Encircle ANSI
 | 
						|
 | 
						|
	// Overline set the text style to overlined.
 | 
						|
	Overline ANSI
 | 
						|
)
 | 
						|
 | 
						|
// Foreground color of text.
 | 
						|
var (
 | 
						|
	// DefaultF is the default color of foreground.
 | 
						|
	DefaultF ANSI
 | 
						|
 | 
						|
	// Normal color
 | 
						|
	BlackF   ANSI
 | 
						|
	RedF     ANSI
 | 
						|
	GreenF   ANSI
 | 
						|
	YellowF  ANSI
 | 
						|
	BlueF    ANSI
 | 
						|
	MagentaF ANSI
 | 
						|
	CyanF    ANSI
 | 
						|
	WhiteF   ANSI
 | 
						|
 | 
						|
	// Light color
 | 
						|
	LightBlackF   ANSI
 | 
						|
	LightRedF     ANSI
 | 
						|
	LightGreenF   ANSI
 | 
						|
	LightYellowF  ANSI
 | 
						|
	LightBlueF    ANSI
 | 
						|
	LightMagentaF ANSI
 | 
						|
	LightCyanF    ANSI
 | 
						|
	LightWhiteF   ANSI
 | 
						|
)
 | 
						|
 | 
						|
// Background color of text.
 | 
						|
var (
 | 
						|
	// DefaultB is the default color of background.
 | 
						|
	DefaultB ANSI
 | 
						|
 | 
						|
	// Normal color
 | 
						|
	BlackB   ANSI
 | 
						|
	RedB     ANSI
 | 
						|
	GreenB   ANSI
 | 
						|
	YellowB  ANSI
 | 
						|
	BlueB    ANSI
 | 
						|
	MagentaB ANSI
 | 
						|
	CyanB    ANSI
 | 
						|
	WhiteB   ANSI
 | 
						|
 | 
						|
	// Light color
 | 
						|
	LightBlackB   ANSI
 | 
						|
	LightRedB     ANSI
 | 
						|
	LightGreenB   ANSI
 | 
						|
	LightYellowB  ANSI
 | 
						|
	LightBlueB    ANSI
 | 
						|
	LightMagentaB ANSI
 | 
						|
	LightCyanB    ANSI
 | 
						|
	LightWhiteB   ANSI
 | 
						|
)
 | 
						|
 | 
						|
func init() {
 | 
						|
	Bold = newSGR(1)
 | 
						|
	Faint = newSGR(2)
 | 
						|
	Italic = newSGR(3)
 | 
						|
	Underline = newSGR(4)
 | 
						|
	BlinkSlow = newSGR(5)
 | 
						|
	BlinkRapid = newSGR(6)
 | 
						|
	Inverse = newSGR(7)
 | 
						|
	Conceal = newSGR(8)
 | 
						|
	CrossOut = newSGR(9)
 | 
						|
 | 
						|
	BlackF = newSGR(30)
 | 
						|
	RedF = newSGR(31)
 | 
						|
	GreenF = newSGR(32)
 | 
						|
	YellowF = newSGR(33)
 | 
						|
	BlueF = newSGR(34)
 | 
						|
	MagentaF = newSGR(35)
 | 
						|
	CyanF = newSGR(36)
 | 
						|
	WhiteF = newSGR(37)
 | 
						|
 | 
						|
	DefaultF = newSGR(39)
 | 
						|
 | 
						|
	BlackB = newSGR(40)
 | 
						|
	RedB = newSGR(41)
 | 
						|
	GreenB = newSGR(42)
 | 
						|
	YellowB = newSGR(43)
 | 
						|
	BlueB = newSGR(44)
 | 
						|
	MagentaB = newSGR(45)
 | 
						|
	CyanB = newSGR(46)
 | 
						|
	WhiteB = newSGR(47)
 | 
						|
 | 
						|
	DefaultB = newSGR(49)
 | 
						|
 | 
						|
	Frame = newSGR(51)
 | 
						|
	Encircle = newSGR(52)
 | 
						|
	Overline = newSGR(53)
 | 
						|
 | 
						|
	LightBlackF = newSGR(90)
 | 
						|
	LightRedF = newSGR(91)
 | 
						|
	LightGreenF = newSGR(92)
 | 
						|
	LightYellowF = newSGR(93)
 | 
						|
	LightBlueF = newSGR(94)
 | 
						|
	LightMagentaF = newSGR(95)
 | 
						|
	LightCyanF = newSGR(96)
 | 
						|
	LightWhiteF = newSGR(97)
 | 
						|
 | 
						|
	LightBlackB = newSGR(100)
 | 
						|
	LightRedB = newSGR(101)
 | 
						|
	LightGreenB = newSGR(102)
 | 
						|
	LightYellowB = newSGR(103)
 | 
						|
	LightBlueB = newSGR(104)
 | 
						|
	LightMagentaB = newSGR(105)
 | 
						|
	LightCyanB = newSGR(106)
 | 
						|
	LightWhiteB = newSGR(107)
 | 
						|
}
 |