initial commit [141.14.129.234,mike]
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Colors for the prompt, banner and output, using the Catppuccin Mocha palette
|
||||
// as 24-bit truecolor escapes
|
||||
// (https://terminalcolors.com/themes/catppuccin/mocha/).
|
||||
const (
|
||||
cReset = "\033[0m"
|
||||
cBold = "\033[1m"
|
||||
cDim = "\033[2m"
|
||||
|
||||
cGreen = "\033[38;2;166;227;161m" // Green #a6e3a1
|
||||
cYellow = "\033[38;2;249;226;175m" // Yellow #f9e2af
|
||||
cRed = "\033[38;2;243;139;168m" // Red #f38ba8
|
||||
cCyan = "\033[38;2;148;226;213m" // Teal #94e2d5
|
||||
cPurple = "\033[38;2;203;166;247m" // Mauve #cba6f7
|
||||
cWhite = "\033[38;2;205;214;244m" // Text #cdd6f4
|
||||
cGray = "\033[38;2;108;112;134m" // Overlay0 #6c7086
|
||||
)
|
||||
|
||||
// col wraps s in color c, but only when color output is enabled.
|
||||
func col(c, s string) string {
|
||||
if useColor {
|
||||
return c + s + cReset
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// errorln prints an error/status message in red (when color is enabled).
|
||||
func errorln(msg string) {
|
||||
fmt.Println(col(cRed, msg))
|
||||
}
|
||||
|
||||
// padRight pads an ASCII string with trailing spaces to width n.
|
||||
func padRight(s string, n int) string {
|
||||
if len(s) < n {
|
||||
return s + strings.Repeat(" ", n-len(s))
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// colorRepoLine colors a `list` entry: the leading `ls -ltr` date (3 fields) in
|
||||
// yellow and the repository name in green.
|
||||
func colorRepoLine(s string) string {
|
||||
if !useColor {
|
||||
return s
|
||||
}
|
||||
parts := strings.Fields(s)
|
||||
if len(parts) >= 4 {
|
||||
date := strings.Join(parts[:3], " ")
|
||||
name := strings.Join(parts[3:], " ")
|
||||
return col(cYellow, date) + " " + col(cGreen, name)
|
||||
}
|
||||
return col(cGreen, s)
|
||||
}
|
||||
Reference in New Issue
Block a user