tolo/pretty/pretty.go

150 lines
2.7 KiB
Go
Raw Normal View History

package pretty
import "fmt"
const (
reset = "\033[0m"
bold = "\033[1m"
dim = "\033[2m"
red = "\033[31m"
green = "\033[32m"
yellow = "\033[33m"
blue = "\033[34m"
magenta = "\033[35m"
cyan = "\033[36m"
gray = "\033[90m"
)
func ResetString() string {
return reset
}
func DimString(msg string) string {
return dim + msg + reset
}
func BoldString(msg string) string {
return bold + msg + reset
}
func CyanString(msg string) string {
return cyan + msg + reset
}
func GreenString(msg string) string {
return green + msg + reset
}
func RedString(msg string) string {
return red + msg + reset
}
func YellowString(msg string) string {
return yellow + msg + reset
}
func MagentaString(msg string) string {
return magenta + msg + reset
}
var icons = struct {
Success string
Error string
Warning string
Info string
Running string
Saved string
Deleted string
Updated string
List string
Search string
}{
Success: "✓",
Error: "✗",
Warning: "⚠",
Info: "",
Running: "▶",
Saved: "💾",
Deleted: "🗑",
Updated: "🔄",
List: "📋",
Search: "🔍",
}
func Success(msg string) {
fmt.Printf("%s%s %s%s %s\n", green, icons.Success, reset, bold, msg)
}
func Error(msg string) {
fmt.Printf("%s%s %s%s %s\n", red, icons.Error, reset, bold, msg)
}
func Warning(msg string) {
fmt.Printf("%s%s %s%s %s\n", yellow, icons.Warning, reset, bold, msg)
}
func Info(msg string) {
fmt.Printf("%s%s %s%s %s\n", blue, icons.Info, reset, bold, msg)
}
func Running(msg string) {
fmt.Printf("%s%s %s%s %s\n", cyan, icons.Running, reset, bold, msg)
}
func Saved(msg string) {
fmt.Printf("%s%s %s%s %s\n", green, icons.Saved, reset, bold, msg)
}
func Deleted(msg string) {
fmt.Printf("%s%s %s%s %s\n", red, icons.Deleted, reset, bold, msg)
}
func Updated(msg string) {
fmt.Printf("%s%s %s%s %s\n", blue, icons.Updated, reset, bold, msg)
}
func List(msg string) {
fmt.Printf("%s%s %s%s %s\n", magenta, icons.List, reset, bold, msg)
}
func Search(msg string) {
fmt.Printf("%s%s %s%s %s\n", cyan, icons.Search, reset, bold, msg)
}
func Header(msg string) {
fmt.Printf("\n%s%s═══ %s %s%s\n\n", bold, magenta, msg, reset, bold)
}
func Separator() {
fmt.Printf("%s%s%s\n", gray, "─", reset)
}
func Dim(msg string) {
fmt.Printf("%s%s%s\n", dim, msg, reset)
}
func Label(msg string) {
fmt.Printf("%s%s%s", dim, msg, reset)
}
func Value(msg string) {
fmt.Printf("%s%s%s\n", cyan, msg, reset)
}
func Command(msg string) {
fmt.Printf("%s%s%s\n", green, msg, reset)
}
func Alias(name string) {
fmt.Printf("%s%s%s", bold, name, reset)
}
func Count(count int) {
fmt.Printf("%s%s%d%s\n", bold, cyan, count, reset)
}
func Newline() {
fmt.Println()
}