mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			138 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package aec
 | 
						|
 | 
						|
import "fmt"
 | 
						|
 | 
						|
// EraseMode is listed in a variable EraseModes.
 | 
						|
type EraseMode uint
 | 
						|
 | 
						|
var (
 | 
						|
	// EraseModes is a list of EraseMode.
 | 
						|
	EraseModes struct {
 | 
						|
		// All erase all.
 | 
						|
		All EraseMode
 | 
						|
 | 
						|
		// Head erase to head.
 | 
						|
		Head EraseMode
 | 
						|
 | 
						|
		// Tail erase to tail.
 | 
						|
		Tail EraseMode
 | 
						|
	}
 | 
						|
 | 
						|
	// Save saves the cursor position.
 | 
						|
	Save ANSI
 | 
						|
 | 
						|
	// Restore restores the cursor position.
 | 
						|
	Restore ANSI
 | 
						|
 | 
						|
	// Hide hides the cursor.
 | 
						|
	Hide ANSI
 | 
						|
 | 
						|
	// Show shows the cursor.
 | 
						|
	Show ANSI
 | 
						|
 | 
						|
	// Report reports the cursor position.
 | 
						|
	Report ANSI
 | 
						|
)
 | 
						|
 | 
						|
// Up moves up the cursor.
 | 
						|
func Up(n uint) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dA", n))
 | 
						|
}
 | 
						|
 | 
						|
// Down moves down the cursor.
 | 
						|
func Down(n uint) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dB", n))
 | 
						|
}
 | 
						|
 | 
						|
// Right moves right the cursor.
 | 
						|
func Right(n uint) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dC", n))
 | 
						|
}
 | 
						|
 | 
						|
// Left moves left the cursor.
 | 
						|
func Left(n uint) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dD", n))
 | 
						|
}
 | 
						|
 | 
						|
// NextLine moves down the cursor to head of a line.
 | 
						|
func NextLine(n uint) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dE", n))
 | 
						|
}
 | 
						|
 | 
						|
// PreviousLine moves up the cursor to head of a line.
 | 
						|
func PreviousLine(n uint) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dF", n))
 | 
						|
}
 | 
						|
 | 
						|
// Column set the cursor position to a given column.
 | 
						|
func Column(col uint) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dG", col))
 | 
						|
}
 | 
						|
 | 
						|
// Position set the cursor position to a given absolute position.
 | 
						|
func Position(row, col uint) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%d;%dH", row, col))
 | 
						|
}
 | 
						|
 | 
						|
// EraseDisplay erases display by given EraseMode.
 | 
						|
func EraseDisplay(m EraseMode) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dJ", m))
 | 
						|
}
 | 
						|
 | 
						|
// EraseLine erases lines by given EraseMode.
 | 
						|
func EraseLine(m EraseMode) ANSI {
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dK", m))
 | 
						|
}
 | 
						|
 | 
						|
// ScrollUp scrolls up the page.
 | 
						|
func ScrollUp(n int) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dS", n))
 | 
						|
}
 | 
						|
 | 
						|
// ScrollDown scrolls down the page.
 | 
						|
func ScrollDown(n int) ANSI {
 | 
						|
	if n == 0 {
 | 
						|
		return empty
 | 
						|
	}
 | 
						|
	return newAnsi(fmt.Sprintf(esc+"%dT", n))
 | 
						|
}
 | 
						|
 | 
						|
func init() {
 | 
						|
	EraseModes = struct {
 | 
						|
		All  EraseMode
 | 
						|
		Head EraseMode
 | 
						|
		Tail EraseMode
 | 
						|
	}{
 | 
						|
		Tail: 0,
 | 
						|
		Head: 1,
 | 
						|
		All:  2,
 | 
						|
	}
 | 
						|
 | 
						|
	Save = newAnsi(esc + "s")
 | 
						|
	Restore = newAnsi(esc + "u")
 | 
						|
	Hide = newAnsi(esc + "?25l")
 | 
						|
	Show = newAnsi(esc + "?25h")
 | 
						|
	Report = newAnsi(esc + "6n")
 | 
						|
}
 |