Documentation ¶
Index ¶
- Constants
- Variables
- func Ago(now, t time.Time) string
- func Breadcrumbs(title string, res resource.Resource, crumbs ...string) string
- func CmdHandler(msg tea.Msg) tea.Cmd
- func NavigateTo(kind Kind, opts ...NavigateOption) tea.Cmd
- func OpenEditor(path string) tea.Cmd
- func ReportError(err error) tea.Cmd
- func ReportInfo(msg string, args ...any) tea.Cmd
- func YesNoPrompt(prompt string, action tea.Cmd) tea.Cmd
- type Cache
- type ErrorMsg
- type FilterBlurMsg
- type FilterCloseMsg
- type FilterFocusReqMsg
- type FilterKeyMsg
- type Helpers
- func (h *Helpers) CostSummary(report workspace.CostSummary, inherit lipgloss.Style) string
- func (h *Helpers) CreateTasks(fn task.SpecFunc, ids ...resource.ID) tea.Cmd
- func (h *Helpers) CreateTasksWithSpecs(specs ...task.Spec) tea.Cmd
- func (h *Helpers) CurrentWorkspaceName(workspaceID *resource.ID) string
- func (h *Helpers) GroupReport(group *task.Group, table bool) string
- func (h *Helpers) Module(res resource.Resource) *module.Module
- func (h *Helpers) ModuleCost(mod *module.Module) string
- func (h *Helpers) ModuleCurrentResourceCount(mod *module.Module) string
- func (h *Helpers) ModuleCurrentWorkspace(mod *module.Module) *workspace.Workspace
- func (h *Helpers) ModulePath(res resource.Resource) string
- func (h *Helpers) Move(workspaceID resource.ID, from state.ResourceAddress) tea.Cmd
- func (h *Helpers) ResourceReport(report plan.Report, inherit lipgloss.Style) string
- func (h *Helpers) StateReloadReport(report state.ReloadSummary, inherit lipgloss.Style) string
- func (h *Helpers) TaskStatus(t *task.Task, background bool) string
- func (h *Helpers) TaskSummary(t *task.Task, table bool) string
- func (h *Helpers) TaskWorkspace(t *task.Task) (resource.Resource, bool)
- func (h *Helpers) WorkspaceCost(ws *workspace.Workspace) string
- func (h *Helpers) WorkspaceCurrentCheckmark(ws *workspace.Workspace) string
- func (h *Helpers) WorkspaceName(res resource.Resource) string
- func (h *Helpers) WorkspaceReloadReport(report workspace.ReloadSummary, inherit lipgloss.Style) string
- func (h *Helpers) WorkspaceResourceCount(ws *workspace.Workspace) string
- type InfoMsg
- type Kind
- type Maker
- type ModelHelpBindings
- type ModelStatus
- type ModelTitle
- type NavigateOption
- type NavigationMsg
- type Page
- type Prompt
- type PromptAction
- type PromptMsg
- type Viewport
- type ViewportOptions
Constants ¶
const ( Black = lipgloss.Color("#000000") DarkRed = lipgloss.Color("#FF0000") Red = lipgloss.Color("#FF5353") Purple = lipgloss.Color("135") Orange = lipgloss.Color("214") Yellow = lipgloss.Color("#DBBD70") Green = lipgloss.Color("34") LightGreen = lipgloss.Color("86") DarkGreen = lipgloss.Color("#325451") GreenBlue = lipgloss.Color("#00A095") DeepBlue = lipgloss.Color("39") LightBlue = lipgloss.Color("81") Blue = lipgloss.Color("63") Violet = lipgloss.Color("13") Grey = lipgloss.Color("#737373") LightGrey = lipgloss.Color("245") LighterGrey = lipgloss.Color("250") EvenLighterGrey = lipgloss.Color("253") DarkGrey = lipgloss.Color("#606362") White = lipgloss.Color("#ffffff") OffWhite = lipgloss.Color("#a8a7a5") )
const PromptHeight = 3
Height of prompt including borders
Variables ¶
var ( DebugLogLevel = Blue InfoLogLevel = lipgloss.AdaptiveColor{Dark: string(LightGreen), Light: string(Green)} ErrorLogLevel = Red WarnLogLevel = Yellow LogRecordAttributeKey = lipgloss.AdaptiveColor{Dark: string(White), Light: string(Black)} HelpKey = lipgloss.AdaptiveColor{ Dark: "ff", Light: "", } HelpDesc = lipgloss.AdaptiveColor{ Dark: "248", Light: "246", } InactivePreviewBorder = lipgloss.AdaptiveColor{ Dark: "244", Light: "250", } CurrentBackground = Grey CurrentForeground = White SelectedBackground = lipgloss.Color("110") SelectedForeground = Black CurrentAndSelectedBackground = lipgloss.Color("117") CurrentAndSelectedForeground = Black TitleColor = lipgloss.AdaptiveColor{ Dark: "", Light: "", } GroupReportBackgroundColor = EvenLighterGrey TaskSummaryBackgroundColor = EvenLighterGrey ScrollPercentageBackground = lipgloss.AdaptiveColor{ Dark: string(DarkGrey), Light: string(EvenLighterGrey), } )
var ( Regular = lipgloss.NewStyle() Bold = Regular.Bold(true) Padded = Regular.Padding(0, 1) Faint = Regular.Faint(true) Width = lipgloss.Width Height = lipgloss.Height Border = Regular.Border(lipgloss.NormalBorder()) ThickBorder = Regular.Border(lipgloss.ThickBorder()).BorderForeground(Violet) Title = Padded.Foreground(White).Background(Purple) TitleCommand = Padded.Foreground(White).Background(Blue) TitlePath = Padded.Foreground(White).Background(modulePathColor) TitleWorkspace = Padded.Foreground(White).Background(Green) TitleID = Padded.Foreground(White).Background(Green) TitleAddress = Padded.Foreground(White).Background(Blue) TitleSerial = Padded.Foreground(White).Background(Orange) TitleTainted = Padded.Foreground(White).Background(Red) )
Functions ¶
func Breadcrumbs ¶ added in v0.2.0
func NavigateTo ¶
func NavigateTo(kind Kind, opts ...NavigateOption) tea.Cmd
NavigateTo sends an instruction to navigate to a page with the given model kind, and optionally parent resource.
func OpenEditor ¶ added in v0.2.0
func ReportError ¶
Types ¶
type Cache ¶ added in v0.2.0
type Cache struct {
// contains filtered or unexported fields
}
page Cache: not so much for performance but to retain memory of user actions, e.g. a user may select a particular row in a table, navigate away from the page and later return to the page, and they would expect the same row still to be selected.
type FilterBlurMsg ¶ added in v0.1.9
type FilterBlurMsg struct{}
FilterBlurMsg is a request to unfocus the filter widget. It is not acknowledged.
type FilterCloseMsg ¶ added in v0.1.9
type FilterCloseMsg struct{}
FilterCloseMsg is a request to close the filter widget. It is not acknowledged.
type FilterFocusReqMsg ¶ added in v0.1.9
type FilterFocusReqMsg struct{}
FilterFocusReqMsg is a request to focus the filter widget.
type FilterKeyMsg ¶ added in v0.1.9
FilterKeyMsg is a key entered by the user into the filter widget
type Helpers ¶
type Helpers struct { Modules *module.Service Workspaces *workspace.Service Plans *plan.Service Tasks *task.Service States *state.Service Logger logging.Interface }
Helper methods for easily surfacing info in the TUI.
TODO: leverage a cache to enhance performance, particularly if we introduce sqlite at some stage. These helpers are invoked on every render, which for a table with, say 40 visible rows, means they are invoked 40 times a render, which is 40 lookups.
func (*Helpers) CostSummary ¶ added in v0.5.0
CostSummary renders a summary of the costs for a workspace.
func (*Helpers) CreateTasks ¶ added in v0.2.0
CreateTasks repeatedly invokes fn with each id in ids, creating a task for each invocation. If there is more than one id then a task group is created and the user sent to the task group's page; otherwise if only id is provided, the user is sent to the task's page.
func (*Helpers) CreateTasksWithSpecs ¶ added in v0.5.0
func (*Helpers) CurrentWorkspaceName ¶
func (*Helpers) GroupReport ¶ added in v0.2.0
GroupReport renders a colored summary of a task group's task statuses.
func (*Helpers) ModuleCost ¶ added in v0.5.0
ModuleCost renders the cost of the module's current workspace, if it has one.
func (*Helpers) ModuleCurrentResourceCount ¶ added in v0.1.10
func (*Helpers) ModuleCurrentWorkspace ¶ added in v0.2.0
func (*Helpers) ResourceReport ¶ added in v0.5.0
ResourceReport renders a colored summary of resource changes as a result of a plan or apply.
func (*Helpers) StateReloadReport ¶ added in v0.5.0
StateReloadReport renders a colored summary of changes resulting from a workspace reload.
func (*Helpers) TaskStatus ¶ added in v0.2.0
TaskStatus provides a rendered colored task status.
func (*Helpers) TaskSummary ¶ added in v0.5.0
TaskSummary renders a summary of the task's outcome.
func (*Helpers) TaskWorkspace ¶ added in v0.2.0
TaskWorkspace retrieves either the task's workspace if it belongs to a workspace, or if it belongs to a module, then it retrieves the module's current workspace
func (*Helpers) WorkspaceCost ¶ added in v0.5.0
WorkspaceCost renders the cost of the given workspace.
func (*Helpers) WorkspaceCurrentCheckmark ¶
WorkspaceCurrentCheckmark returns a check mark if the workspace is the current workspace for its module.
func (*Helpers) WorkspaceReloadReport ¶ added in v0.5.0
func (h *Helpers) WorkspaceReloadReport(report workspace.ReloadSummary, inherit lipgloss.Style) string
WorkspaceReloadReport renders a colored summary of workspaces added or removed as a result of a workspace reload.
type Kind ¶
type Kind int
func FirstPageKind ¶
FirstPageKind retrieves the model corresponding to the user requested first page.
type ModelHelpBindings ¶
ModelHelpBindings is implemented by models that surface further help bindings specific to the model.
type ModelStatus ¶
type ModelStatus interface {
Status() string
}
ModelID is implemented by models that are able to provide a unique identification string.
type ModelTitle ¶
type ModelTitle interface {
Title() string
}
ModelTitle is implemented by models that show a title
type NavigateOption ¶
type NavigateOption func(msg *NavigationMsg)
func WithParent ¶
func WithParent(parent resource.ID) NavigateOption
type NavigationMsg ¶
type NavigationMsg struct {}
NavigationMsg is an instruction to navigate to a page.
func NewNavigationMsg ¶
func NewNavigationMsg(kind Kind, opts ...NavigateOption) NavigationMsg
type Page ¶
type Page struct { // The model kind. Identifies the model maker to construct the page. Kind Kind // The ID of the resource for a model. In the case of global listings of // modules, workspaces, etc, this is the global resource. ID resource.ID }
Page identifies an instance of a model
type Prompt ¶ added in v0.1.10
type Prompt struct {
// contains filtered or unexported fields
}
Prompt is a widget that prompts the user for input and triggers an action.
func (*Prompt) HandleBlink ¶ added in v0.1.10
HandleBlink handles the bubbletea blink message.
func (*Prompt) HandleKey ¶ added in v0.1.10
HandleKey handles the user key press, and returns a command to be run, and whether the prompt should be closed.
func (*Prompt) HelpBindings ¶ added in v0.1.10
type PromptAction ¶ added in v0.1.10
type PromptMsg ¶ added in v0.1.10
type PromptMsg struct { // Prompt to display to the user. Prompt string // Set initial value for the user to edit. InitialValue string // Action to carry out when key is pressed. Action PromptAction // Key that when pressed triggers the action and closes the prompt. Key key.Binding // Cancel is a key that when pressed skips the action and closes the prompt. Cancel key.Binding // CancelAnyOther, if true, checks if any key other than that specified in // Key is pressed. If so then the action is skipped and the prompt is // closed. Overrides Cancel key binding. CancelAnyOther bool }
PromptMsg enables the prompt widget.
type Viewport ¶ added in v0.2.0
type Viewport struct { Autoscroll bool // contains filtered or unexported fields }
Viewport is a wrapper of the upstream viewport bubble.
func NewViewport ¶ added in v0.2.0
func NewViewport(opts ViewportOptions) Viewport