mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 08:03:43 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			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)
 | |
| }
 | 
