55 lines
2.8 KiB
Go
55 lines
2.8 KiB
Go
package logo
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
const compact = "BIFROST CLI"
|
|
|
|
// Render returns the ASCII logo for the given terminal width.
|
|
func Render(width int) string {
|
|
if width < 61 {
|
|
return compact
|
|
}
|
|
|
|
return strings.Join([]string{
|
|
"╔═══════════════════════════════════════════════════════════╗",
|
|
"║ ║",
|
|
"║ ██████╗ ██╗███████╗██████╗ ██████╗ ███████╗████████╗ ║",
|
|
"║ ██╔══██╗██║██╔════╝██╔══██╗██╔═══██╗██╔════╝╚══██╔══╝ ║",
|
|
"║ ██████╔╝██║█████╗ ██████╔╝██║ ██║███████╗ ██║ ║",
|
|
"║ ██╔══██╗██║██╔══╝ ██╔══██╗██║ ██║╚════██║ ██║ ║",
|
|
"║ ██████╔╝██║██║ ██║ ██║╚██████╔╝███████║ ██║ ║",
|
|
"║ ╚═════╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ║",
|
|
"║ ║",
|
|
"║═══════════════════════════════════════════════════════════║",
|
|
"║ CLI ║",
|
|
"║═══════════════════════════════════════════════════════════║",
|
|
"║ https://github.com/maximhq/bifrost ║",
|
|
"╚═══════════════════════════════════════════════════════════╝",
|
|
}, "\n")
|
|
}
|
|
|
|
// BootHeader builds the full boot header with the ASCII logo and version info.
|
|
func BootHeader(width int, version, commit, source string, noColor bool) string {
|
|
if width < 61 {
|
|
meta := fmt.Sprintf("%s (%s)", version, commit)
|
|
return fmt.Sprintf("\n\n%s\n%s", Render(width), meta)
|
|
}
|
|
|
|
meta := fmt.Sprintf("%s (%s) config=%s", version, commit, source)
|
|
|
|
var b strings.Builder
|
|
b.WriteString("\n\n")
|
|
b.WriteString(Render(width))
|
|
b.WriteString("\n")
|
|
if noColor {
|
|
b.WriteString(meta)
|
|
} else {
|
|
b.WriteString("\033[2;36m" + meta + "\033[0m")
|
|
}
|
|
b.WriteString("\n")
|
|
return b.String()
|
|
}
|