From 7bff34f4089cd6f7edc40470d212aafa116262df Mon Sep 17 00:00:00 2001 From: Alisson Santos Date: Mon, 2 Nov 2020 10:56:23 +0100 Subject: [PATCH] Use terminal width for the status line --- pkg/cmd/repo/garden/garden.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/cmd/repo/garden/garden.go b/pkg/cmd/repo/garden/garden.go index 8ab347594..d3b65e1c4 100644 --- a/pkg/cmd/repo/garden/garden.go +++ b/pkg/cmd/repo/garden/garden.go @@ -303,7 +303,7 @@ func gardenRun(opts *GardenOptions) error { } // status line stuff - sl := statusLine(garden, player) + sl := statusLine(garden, player, opts.IO) fmt.Fprint(out, "\033[;H") // move to top left for y := 0; y < player.Geo.Height-1; y++ { @@ -450,14 +450,18 @@ func drawGarden(out io.Writer, garden [][]*Cell, player *Player) { fmt.Fprintln(out, utils.Bold(sl)) } -func statusLine(garden [][]*Cell, player *Player) string { - statusLine := garden[player.Y][player.X].StatusLine + " " +func statusLine(garden [][]*Cell, player *Player, io *iostreams.IOStreams) string { + statusLine := garden[player.Y][player.X].StatusLine + if player.ShoeMoistureContent > 1 { statusLine += "\nYour shoes squish with water from the stream." } else if player.ShoeMoistureContent == 1 { statusLine += "\nYour shoes seem to have dried out." - } else { - statusLine += "\n " + } + + if len(statusLine) < io.TerminalWidth() { + paddingSize := io.TerminalWidth() - len(statusLine) + statusLine += strings.Repeat(" ", paddingSize) } return statusLine