Golang 터미널 문자 색상 바꾸는 Aurora 라이브러리 알아보기

오늘은 Golang으로 터미널에서 fmt 출력할 때에 문자열 색상을 지정할 수 있는 Aurora 라이브러리를 알아보려 합니다.

Aurora 설치

우선 Golang의 환경을 구성하기 위해 https://golang.org/dl/ 에서 윈도우, 리눅스, 맥에서 설치 프로그램을 내려받을 수 있습니다.

맥에서 brew로 쉽게 설치할 수 있습니다.

brew install go

우분투에서도 apt로 쉽게 설치할 수 있습니다.

sudo apt-get install golang-go

go get으로 github에서 호스팅되고 있는 Aurora 패키지를 설치합니다.

go get -u github.com/logrusorgru/aurora

홈의 go 폴더에 Aurora 소스코드와 패키지 파일이 생성됩니다.

예제

package main

해당 소스코드를 실행 파일로 인식하게 해주도록 main이라고 선언합니다.

import (
	"fmt"

	. "github.com/logrusorgru/aurora"
)

fmt와 aurora를 가져옵니다.

func main() {
	fmt.Println(Bold("Bold"))
	fmt.Println(Faint("Faint"))
	fmt.Println(DoublyUnderline("DoublyUnderline"))
	fmt.Println(Fraktur("Fraktur"))
	fmt.Println(Italic("Italic"))
	fmt.Println(Underline("Underline"))
	fmt.Println(SlowBlink("SlowBlink"))
	fmt.Println(RapidBlink("RapidBlink"))
	fmt.Println(Blink("Blink"))
	fmt.Println(Reverse("Reverse"))
	fmt.Println(Inverse("Inverse"))
	fmt.Println(Conceal("Conceal"))
	fmt.Println(Hidden("Hidden"))
	fmt.Println(CrossedOut("CrossedOut"))
	fmt.Println(StrikeThrough("StrikeThrough"))
	fmt.Println(Framed("Framed"))
	fmt.Println(Encircled("Encircled"))
	fmt.Println(Overlined("Overlined"))

다양한 포맷을 터미널에서 표현할 수 있습니다.

	fmt.Println(Black("Black"))
	fmt.Println(Red("Red"))
	fmt.Println(Green("Green"))
	fmt.Println(Yellow("Yellow"))
	fmt.Println(Brown("Brown"))
	fmt.Println(Blue("Blue"))
	fmt.Println(Magenta("Magenta"))
	fmt.Println(Cyan("Cyan"))
	fmt.Println(White("White"))
	fmt.Println(BrightBlack("BrightBlack"))
	fmt.Println(BrightRed("BrightRed"))
	fmt.Println(BrightGreen("BrightGreen"))
	fmt.Println(BrightYellow("BrightYellow"))
	fmt.Println(BrightBlue("BrightBlue"))
	fmt.Println(BrightMagenta("BrightMagenta"))
	fmt.Println(BrightCyan("BrightCyan"))
	fmt.Println(BrightWhite("BrightWhite"))

다양한 색상을 터미널에서 표현할 수 있습니다.

	fmt.Println(BgBlack("BgBlack"))
	fmt.Println(BgRed("BgRed"))
	fmt.Println(BgGreen("BgGreen"))
	fmt.Println(BgYellow("BgYellow"))
	fmt.Println(BgBrown("BgBrown"))
	fmt.Println(BgBlue("BgBlue"))
	fmt.Println(BgMagenta("BgMagenta"))
	fmt.Println(BgCyan("BgCyan"))
	fmt.Println(BgWhite("BgWhite"))
	fmt.Println(BgBrightBlack("BgBrightBlack"))
	fmt.Println(BgBrightRed("BgBrightRed"))
	fmt.Println(BgBrightGreen("BgBrightGreen"))
	fmt.Println(BgBrightYellow("BgBrightYellow"))
	fmt.Println(BgBrightBlue("BgBrightBlue"))
	fmt.Println(BgBrightMagenta("BgBrightMagenta"))
	fmt.Println(BgBrightCyan("BgBrightCyan"))
	fmt.Println(BgBrightWhite("BgBrightWhite"))

다양한 문자열 배경을 터미널에서 표현할 수 있습니다.

	hello := Blue("hello world").Bold().BgBrightWhite()
	fmt.Println(hello)

위 색상과 포맷을 체인 형식으로 작성할 수도 있습니다.

	fmt.Println(
		Gray(0, " 1 ").BgGray(23),
		Gray(3, " 2 ").BgGray(19),
		Gray(7, " 3 ").BgGray(15),
		Gray(11, " 4 ").BgGray(11),
		Gray(15, " 5 ").BgGray(9),
		Gray(19, " 6 ").BgGray(3),
		Gray(23, " 7 ").BgGray(0),
	)
}

Grayscale도 표현할 수 있습니다.

Written on August 3, 2019