print ascii if chafa not available and ascii flag
This commit is contained in:
parent
5ee58d92ec
commit
e2a7e77a8f
19
src/main.go
19
src/main.go
@ -14,6 +14,7 @@ func main() {
|
|||||||
width := flag.Int("w", 190, "Logo width in lines")
|
width := flag.Int("w", 190, "Logo width in lines")
|
||||||
logoPath := flag.String("l", "", "Path to the logo")
|
logoPath := flag.String("l", "", "Path to the logo")
|
||||||
logoPos := flag.String("p", "", "Logo position: left or right")
|
logoPos := flag.String("p", "", "Logo position: left or right")
|
||||||
|
ascii := flag.Bool("a", false, "Use ASCII art for logo")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if *resetConfig {
|
if *resetConfig {
|
||||||
@ -38,7 +39,7 @@ func main() {
|
|||||||
if conf.CustomLogo != "" {
|
if conf.CustomLogo != "" {
|
||||||
defaultLogo = conf.CustomLogo
|
defaultLogo = conf.CustomLogo
|
||||||
} else {
|
} else {
|
||||||
defaultLogo = providers.GetLogo(distID)
|
defaultLogo = providers.GetLogo(distID, conf, ascii)
|
||||||
}
|
}
|
||||||
|
|
||||||
if *logoPath == "" {
|
if *logoPath == "" {
|
||||||
@ -129,11 +130,21 @@ func main() {
|
|||||||
|
|
||||||
var logoLines []string
|
var logoLines []string
|
||||||
if _, err := os.Stat(*logoPath); err == nil {
|
if _, err := os.Stat(*logoPath); err == nil {
|
||||||
|
if conf.Ascii || (ascii != nil && *ascii) {
|
||||||
|
logoLines = providers.SplitLines(providers.PrintAsciiLogo(*logoPath))
|
||||||
|
} else {
|
||||||
logoLines, err = providers.RenderLogoChafa(*logoPath, uint(*width))
|
logoLines, err = providers.RenderLogoChafa(*logoPath, uint(*width))
|
||||||
if conf.Ascii {
|
if err != nil {
|
||||||
logoLines = providers.SplitLines(providers.PrintAsciiLogo(*logoPath))
|
parts := strings.Split(*logoPath, ".")
|
||||||
} else if err != nil {
|
if len(parts) > 1 {
|
||||||
|
parts[1] = "txt"
|
||||||
|
}
|
||||||
|
*logoPath = strings.Join(parts, ".")
|
||||||
logoLines = providers.SplitLines(providers.PrintAsciiLogo(*logoPath))
|
logoLines = providers.SplitLines(providers.PrintAsciiLogo(*logoPath))
|
||||||
|
if strings.Contains(*logoPath, ".txt") != true {
|
||||||
|
fmt.Printf("chafa binary not found, to print images please install chafa\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logoLines = []string{fmt.Sprintf("Logo not found at: %s", *logoPath)}
|
logoLines = []string{fmt.Sprintf("Logo not found at: %s", *logoPath)}
|
||||||
|
|||||||
@ -14,24 +14,21 @@ import (
|
|||||||
|
|
||||||
var ansiEscapeRe = regexp.MustCompile(`\x1b\[[0-9;?]*[ -/]*[@-~]`)
|
var ansiEscapeRe = regexp.MustCompile(`\x1b\[[0-9;?]*[ -/]*[@-~]`)
|
||||||
|
|
||||||
func GetLogo(id string) string {
|
func GetLogo(id string, conf Config, ascii *bool) string {
|
||||||
knownIDs := []string{"arch", "nixos", "debian", "alpine", "gentoo", "void", "chimera", "cachyos", "artix", "endeavouros", "fedora", "kali", "linuxmint", "manjaro", "ubuntu", "opensuse"}
|
knownIDs := []string{"arch", "nixos", "debian", "alpine", "gentoo", "void", "chimera", "cachyos", "artix", "endeavouros", "fedora", "kali", "linuxmint", "manjaro", "ubuntu", "opensuse"}
|
||||||
if slices.Contains(knownIDs, id) {
|
if slices.Contains(knownIDs, id) {
|
||||||
|
if conf.Ascii || (ascii != nil && *ascii) == true {
|
||||||
|
return path.Join("logos", id+".txt")
|
||||||
|
}
|
||||||
return path.Join("logos", id+".png")
|
return path.Join("logos", id+".png")
|
||||||
}
|
}
|
||||||
|
if conf.Ascii || (ascii != nil && *ascii) == true {
|
||||||
|
return "logos/linux.txt"
|
||||||
|
}
|
||||||
return "logos/linux.png"
|
return "logos/linux.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAscii(id string) string {
|
|
||||||
knownIDs := []string{"arch", "nixos", "debian"}
|
|
||||||
if slices.Contains(knownIDs, id) {
|
|
||||||
return path.Join("logos", id+".txt")
|
|
||||||
}
|
|
||||||
return "logos/linux.txt"
|
|
||||||
}
|
|
||||||
|
|
||||||
func PrintAsciiLogo(path string) string {
|
func PrintAsciiLogo(path string) string {
|
||||||
path = GetAscii(id)
|
|
||||||
content, err := os.ReadFile(path)
|
content, err := os.ReadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Sprintf("Error: Could not read ASCII file at %s\n", path)
|
return fmt.Sprintf("Error: Could not read ASCII file at %s\n", path)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user