From d835ff2fcd0d5aa68edceb4e72c7a0cb4059dc63 Mon Sep 17 00:00:00 2001 From: The Magician Date: Wed, 12 Jun 2024 18:57:12 +0100 Subject: [PATCH] Calculate terminal width when drawing figlets --- sevenkeys/constants/constants.go | 7 ------- sevenkeys/figlet/figlet.go | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/sevenkeys/constants/constants.go b/sevenkeys/constants/constants.go index 22780c2..e101a1c 100644 --- a/sevenkeys/constants/constants.go +++ b/sevenkeys/constants/constants.go @@ -4,16 +4,9 @@ import ( "database/sql" tea "github.com/charmbracelet/bubbletea" - "github.com/lukesampson/figlet/figletlib" ) var ( Program *tea.Program Database *sql.DB - - WindowWidth int - WindowHeight int - - FigletFontSlant *figletlib.Font - FigletFontTerm *figletlib.Font ) diff --git a/sevenkeys/figlet/figlet.go b/sevenkeys/figlet/figlet.go index 14c3e25..a46c7f9 100644 --- a/sevenkeys/figlet/figlet.go +++ b/sevenkeys/figlet/figlet.go @@ -3,10 +3,10 @@ package figlet import ( "os" "path/filepath" - "sevenkeys/constants" "sevenkeys/logic" "github.com/lukesampson/figlet/figletlib" + "golang.org/x/crypto/ssh/terminal" ) var ( @@ -27,10 +27,18 @@ func ReadFigletFonts() { logic.Check(err) } +func getTerminalWidth() int { + width, _, err := terminal.GetSize(0) + if err != nil { + return 80 + } + return width +} + func PrintMsgSlant(msg, alignment string) { figletlib.PrintMsg(msg, FigletFontSlant, - 200, + getTerminalWidth(), FigletFontSlant.Settings(), alignment) } @@ -38,7 +46,7 @@ func PrintMsgSlant(msg, alignment string) { func PrintMsgTerm(msg, alignment string) { figletlib.PrintMsg(msg, FigletFontTerm, - 200, + getTerminalWidth(), FigletFontTerm.Settings(), alignment) } @@ -46,7 +54,7 @@ func PrintMsgTerm(msg, alignment string) { func SprintMsgSlant(msg, alignment string) string { return figletlib.SprintMsg(msg, FigletFontSlant, - constants.WindowWidth, + getTerminalWidth(), FigletFontSlant.Settings(), alignment) } @@ -54,7 +62,7 @@ func SprintMsgSlant(msg, alignment string) string { func SprintMsgTerm(msg, alignment string) string { return figletlib.SprintMsg(msg, FigletFontTerm, - constants.WindowWidth, + getTerminalWidth(), FigletFontTerm.Settings(), alignment) }