TheMathemagicians/sevenkeys/figlet/figlet.go

69 lines
1.2 KiB
Go
Raw Normal View History

2024-06-10 12:32:45 +00:00
package figlet
import (
2024-06-10 15:34:16 +00:00
"os"
"path/filepath"
"sevenkeys/logic"
2024-06-10 12:32:45 +00:00
"github.com/lukesampson/figlet/figletlib"
"golang.org/x/crypto/ssh/terminal"
2024-06-10 12:32:45 +00:00
)
2024-06-10 15:34:16 +00:00
var (
FigletFontSlant *figletlib.Font
FigletFontTerm *figletlib.Font
)
func ReadFigletFonts() {
cwd, err := os.Getwd()
logic.Check(err)
fontsdir := filepath.Join(cwd, "fonts")
FigletFontSlant, err = figletlib.GetFontByName(fontsdir, "slant")
logic.Check(err)
FigletFontTerm, err = figletlib.GetFontByName(fontsdir, "term")
logic.Check(err)
}
func getTerminalWidth() int {
width, _, err := terminal.GetSize(0)
if err != nil {
return 80
}
return width
}
2024-06-10 15:34:16 +00:00
func PrintMsgSlant(msg, alignment string) {
figletlib.PrintMsg(msg,
FigletFontSlant,
getTerminalWidth(),
2024-06-10 15:34:16 +00:00
FigletFontSlant.Settings(),
alignment)
}
func PrintMsgTerm(msg, alignment string) {
figletlib.PrintMsg(msg,
FigletFontTerm,
getTerminalWidth(),
2024-06-10 15:34:16 +00:00
FigletFontTerm.Settings(),
alignment)
}
2024-06-10 12:32:45 +00:00
func SprintMsgSlant(msg, alignment string) string {
return figletlib.SprintMsg(msg,
2024-06-10 15:34:16 +00:00
FigletFontSlant,
getTerminalWidth(),
2024-06-10 15:34:16 +00:00
FigletFontSlant.Settings(),
2024-06-10 12:32:45 +00:00
alignment)
}
func SprintMsgTerm(msg, alignment string) string {
return figletlib.SprintMsg(msg,
2024-06-10 15:34:16 +00:00
FigletFontTerm,
getTerminalWidth(),
2024-06-10 15:34:16 +00:00
FigletFontTerm.Settings(),
2024-06-10 12:32:45 +00:00
alignment)
}