ui

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package ui provides interactive selection prompts for the CLI.

Index

Constants

This section is empty.

Variables

View Source
var ErrNotInteractive = errors.New("interactive selection requires a terminal")

ErrNotInteractive is returned when an interactive prompt is attempted without a terminal attached to stdin.

View Source
var IsTerminalFunc = func(fd uintptr) bool {
	return isatty.IsTerminal(fd) || isatty.IsCygwinTerminal(fd)
}

IsTerminalFunc checks whether the given file descriptor is a terminal. It is a variable so tests can override it.

Functions

func BuildGroupOptions added in v0.3.0

func BuildGroupOptions(groups []models.GroupsEligibleTarget) []string

BuildGroupOptions builds a sorted list of display options from groups eligible targets.

func BuildOptions

func BuildOptions(targets []models.EligibleTarget) []string

BuildOptions builds a sorted list of display options from eligible targets.

func BuildSessionOptions added in v0.3.0

func BuildSessionOptions(
	sessions []models.SessionInfo,
	nameMap map[string]string,
	groupNameMap map[string]string,
	remainingMap map[string]time.Duration,
) []string

BuildSessionOptions builds a sorted list of display options from sessions.

func ConfirmRevocation added in v0.3.0

func ConfirmRevocation(count int) (bool, error)

ConfirmRevocation prompts the user to confirm session revocation.

func FindGroupByDisplay added in v0.3.0

func FindGroupByDisplay(groups []models.GroupsEligibleTarget, display string) (*models.GroupsEligibleTarget, error)

FindGroupByDisplay finds a group by its formatted display string.

func FindSessionByDisplay added in v0.3.0

func FindSessionByDisplay(
	sessions []models.SessionInfo,
	nameMap map[string]string,
	groupNameMap map[string]string,
	remainingMap map[string]time.Duration,
	display string,
) (*models.SessionInfo, error)

FindSessionByDisplay finds a session by its formatted display string.

func FindTargetByDisplay

func FindTargetByDisplay(targets []models.EligibleTarget, display string) (*models.EligibleTarget, error)

FindTargetByDisplay finds a target by its formatted display string.

func FormatGroupOption added in v0.3.0

func FormatGroupOption(group models.GroupsEligibleTarget) string

FormatGroupOption formats a groups eligible target into a display string.

func FormatSessionOption added in v0.3.0

func FormatSessionOption(
	session models.SessionInfo,
	nameMap map[string]string,
	groupNameMap map[string]string,
	remainingMap map[string]time.Duration,
) string

FormatSessionOption formats a session for display in the multi-select UI. groupNameMap and remainingMap are nil-safe; when nil, behavior is identical to the original (backwards compatible).

func FormatTargetOption

func FormatTargetOption(target models.EligibleTarget) string

FormatTargetOption formats an eligible target into a display string.

func IsInteractive added in v0.6.0

func IsInteractive() bool

IsInteractive reports whether stdin is connected to a terminal.

func SelectGroup added in v0.3.0

SelectGroup presents an interactive selector for choosing a group. It sorts a copy of the groups so that FindGroupByDisplay searches the same ordered slice the user saw, avoiding wrong-group selection on display collisions.

func SelectSessions added in v0.3.0

func SelectSessions(sessions []models.SessionInfo, nameMap map[string]string) ([]models.SessionInfo, error)

SelectSessions presents a multi-select prompt for choosing sessions to revoke.

func SelectTarget

func SelectTarget(targets []models.EligibleTarget) (*models.EligibleTarget, error)

SelectTarget presents an interactive selector for choosing a target.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL