Documentation
¶
Overview ¶
Package app implements the main Bubbletea application for the interactive workflow dispatcher TUI.
Index ¶
- Constants
- Variables
- type Candidate
- type ChainUpdateMsg
- type Command
- type FetchLogsMsg
- type FetchTimelineMsg
- type FocusedPane
- type KeyMap
- type LogStreamUpdateMsg
- type LogsFetchedMsg
- type Model
- type Registry
- type RunUpdateMsg
- type ShowLogsViewerMsg
- type StartLogStreamMsg
- type StatusMsg
- type StopLogStreamMsg
- type TimelineFetchedMsg
- type ViewMode
Constants ¶
const ( MaxHistoryEntries = 10 MinTerminalHeight = 20 MinTerminalWidth = 80 TableHeaderHeight = 14 )
UI layout and history limits.
Variables ¶
var ErrLogManagerNotInitialized = errors.New("log manager not initialized")
ErrLogManagerNotInitialized indicates logs were requested before the log manager was set up.
var ErrNoChainStateOrRunID = errors.New("no chain state or run ID provided")
ErrNoChainStateOrRunID indicates a log fetch request lacked both chain state and a run ID.
Functions ¶
This section is empty.
Types ¶
type Candidate ¶ added in v1.4.0
Candidate is one completion paired with the line explaining it, so the command bar shows both without a second lookup.
type ChainUpdateMsg ¶
type ChainUpdateMsg struct {
Update chain.ChainUpdate
}
ChainUpdateMsg is sent when a chain execution state changes.
type Command ¶ added in v1.4.0
type Command struct {
// Run applies the command. Args are the whitespace-separated words after
// the command's own name.
Run func(Model, []string) (Model, tea.Cmd)
// Complete offers the candidates for the argument being typed, which is
// the last element of args and may be empty. A nil Complete means the
// command takes no arguments worth completing.
Complete func(Model, []string) []Candidate
Name string
Description string
}
Command is one named `:command` the command bar can run. A command exists so an action has a name a reader can guess, which is what a key cannot offer once the letters run out.
type FetchLogsMsg ¶
type FetchLogsMsg struct {
ChainState *chain.ChainState
Workflow string
Branch string
RunID int64
ErrorsOnly bool
}
FetchLogsMsg requests fetching logs for a chain or run.
type FetchTimelineMsg ¶ added in v1.5.0
FetchTimelineMsg asks for a run's jobs so the Timeline tab can draw them.
type FocusedPane ¶
type FocusedPane int
FocusedPane represents which pane currently has focus.
const ( PaneWorkflows FocusedPane = iota PaneHistory PaneConfig )
Panes available in the TUI, in tab order.
type KeyMap ¶
type KeyMap struct {
Actions key.Binding
Branch key.Binding
Command key.Binding
Chain key.Binding
Clear key.Binding
ClearAll key.Binding
Copy key.Binding
Down key.Binding
Edit key.Binding
Enter key.Binding
Escape key.Binding
Filter key.Binding
Help key.Binding
LiveView key.Binding
Quit key.Binding
Reset key.Binding
ShiftTab key.Binding
Space key.Binding
Tab key.Binding
TabNext key.Binding
TabPrev key.Binding
Up key.Binding
ViewLogs key.Binding
Watch key.Binding
Input0 key.Binding
Input1 key.Binding
Input2 key.Binding
Input3 key.Binding
Input4 key.Binding
Input5 key.Binding
Input6 key.Binding
Input7 key.Binding
Input8 key.Binding
Input9 key.Binding
Workflow0 key.Binding
Workflow1 key.Binding
Workflow2 key.Binding
Workflow3 key.Binding
Workflow4 key.Binding
Workflow5 key.Binding
Workflow6 key.Binding
Workflow7 key.Binding
Workflow8 key.Binding
Workflow9 key.Binding
}
KeyMap defines all keyboard shortcuts for the application.
func DefaultKeyMap ¶
func DefaultKeyMap() KeyMap
DefaultKeyMap returns the default keyboard shortcuts.
func (KeyMap) InputKeys ¶
InputKeys returns the input key bindings in row order, so the returned index is the input's own index and `0` reaches the tenth row.
func (KeyMap) WorkflowKeys ¶
WorkflowKeys returns all workflow key bindings as a slice indexed 0-9.
type LogStreamUpdateMsg ¶
type LogStreamUpdateMsg struct {
Update logs.StreamUpdate
}
LogStreamUpdateMsg contains new log content from streaming.
type LogsFetchedMsg ¶
type LogsFetchedMsg struct {
Error error
Logs *logs.RunLogs
Workflow string
RunID int64
ErrorsOnly bool
}
LogsFetchedMsg contains fetched logs or an error.
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
Model is the root bubbletea model for the application.
func (Model) SelectedWorkflow ¶
SelectedWorkflow returns the currently selected workflow.
type Registry ¶ added in v1.4.0
type Registry struct {
// contains filtered or unexported fields
}
Registry holds the commands the bar knows, sorted by name.
func DefaultRegistry ¶ added in v1.4.0
func DefaultRegistry() Registry
DefaultRegistry builds the commands the `:` bar offers. Every one of them is reachable by a key as well; the bar exists so an action has a name to guess at when its key is not the one you remember.
func NewRegistry ¶ added in v1.4.0
NewRegistry builds a Registry, sorting by name so every listing and completion comes back in one order.
func (Registry) Candidates ¶ added in v1.4.0
Candidates returns the commands whose names start with prefix.
func (Registry) Listing ¶ added in v1.4.0
Listing renders every command as "name<tab>description", one per line, for a caller with no help modal to open.
type RunUpdateMsg ¶
RunUpdateMsg is sent when a watched run is updated.
type ShowLogsViewerMsg ¶
ShowLogsViewerMsg opens the logs viewer modal.
type StartLogStreamMsg ¶
StartLogStreamMsg begins streaming logs for an active run.
type StatusMsg ¶ added in v1.4.0
type StatusMsg struct {
Text string
}
StatusMsg carries a one-line result to the footer. A command that answers with text rather than a new view says so here.
type StopLogStreamMsg ¶
type StopLogStreamMsg struct {
RunID int64
}
StopLogStreamMsg stops streaming logs for a run.
type TimelineFetchedMsg ¶ added in v1.5.0
TimelineFetchedMsg carries the jobs, or why they could not be read.