prefer aec library over raw ANSI sequences

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
Nicolas De Loof
2025-12-10 14:21:20 +01:00
committed by Guillaume Lours
parent 55cded1806
commit 1297f97aef
3 changed files with 14 additions and 15 deletions

View File

@@ -20,47 +20,46 @@ import (
"fmt"
"github.com/acarl005/stripansi"
"github.com/morikuni/aec"
)
var disableAnsi bool
func ansi(code string) string {
return fmt.Sprintf("\033%s", code)
}
func saveCursor() {
if disableAnsi {
return
}
fmt.Print(ansi("7"))
// see https://github.com/morikuni/aec/pull/5
fmt.Print(aec.Save)
}
func restoreCursor() {
if disableAnsi {
return
}
fmt.Print(ansi("8"))
// see https://github.com/morikuni/aec/pull/5
fmt.Print(aec.Restore)
}
func showCursor() {
if disableAnsi {
return
}
fmt.Print(ansi("[?25h"))
fmt.Print(aec.Show)
}
func moveCursor(y, x int) {
if disableAnsi {
return
}
fmt.Print(ansi(fmt.Sprintf("[%d;%dH", y, x)))
fmt.Print(aec.Position(uint(y), uint(x)))
}
func carriageReturn() {
if disableAnsi {
return
}
fmt.Print(ansi(fmt.Sprintf("[%dG", 0)))
fmt.Print(aec.Column(0))
}
func clearLine() {
@@ -68,7 +67,7 @@ func clearLine() {
return
}
// Does not move cursor from its current position
fmt.Print(ansi("[2K"))
fmt.Print(aec.EraseLine(aec.EraseModes.Tail))
}
func moveCursorUp(lines int) {
@@ -76,7 +75,7 @@ func moveCursorUp(lines int) {
return
}
// Does not add new lines
fmt.Print(ansi(fmt.Sprintf("[%dA", lines)))
fmt.Print(aec.Up(uint(lines)))
}
func moveCursorDown(lines int) {
@@ -84,7 +83,7 @@ func moveCursorDown(lines int) {
return
}
// Does not add new lines
fmt.Print(ansi(fmt.Sprintf("[%dB", lines)))
fmt.Print(aec.Down(uint(lines)))
}
func newLine() {

2
go.mod
View File

@@ -34,7 +34,7 @@ require (
github.com/moby/patternmatcher v0.6.0
github.com/moby/sys/atomicwriter v0.1.0
github.com/moby/term v0.5.2
github.com/morikuni/aec v1.0.0
github.com/morikuni/aec v1.1.0
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.1
github.com/otiai10/copy v1.14.1

4
go.sum
View File

@@ -283,8 +283,8 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
github.com/morikuni/aec v1.1.0 h1:vBBl0pUnvi/Je71dsRrhMBtreIqNMYErSAbEeb8jrXQ=
github.com/morikuni/aec v1.1.0/go.mod h1:xDRgiq/iw5l+zkao76YTKzKttOp2cwPEne25HDkJnBw=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=