Lint / lint (push) Waiting to run
Release / Release (push) Waiting to run
Scan for secrets / test (push) Waiting to run
Snifftest / Run Snifftest (push) Waiting to run
Test / test (push) Waiting to run
Test / test-detectors (push) Waiting to run
Test / test-community (push) Waiting to run
* Init attempt at tui with bubble tea. Co-authored-by: mcastorina <[email protected]> * Add starting and source selection options Co-authored-by: mcastorina <[email protected]> * Rewrite models into a state machine * Update source descriptions * Make subpages implement tea.Model * Rename page0 and page1 to be more descriptive * Adjust styling and adding color consts Co-authored-by: mcastorina <[email protected]> * Add helper generic function to call Update and type cast * Setup plumbing for source configuration page * Use CLI introspection for source configuration (WIP) * Experiment with table view * Replace table with form fields Co-authored-by: mcastorina <[email protected]> * Change 🔒 to 💸 * Copy components from soft-serve Co-authored-by: hxnyk <[email protected]> * Copy styles from soft-serve Co-authored-by: hxnyk <[email protected]> * Copy common from soft-serve Co-authored-by: hxnyk <[email protected]> * Refactor into pages This is still a WIP, but the main structure is there. Co-authored-by: hxnyk <[email protected]> * Trying out selector for wizard intro Co-authored-by: mcastorina <[email protected]> * Use selector with custom View Co-authored-by: hxnyk <[email protected]> * Change Item to be an enum Co-authored-by: hxnyk <[email protected]> * Add link pages Co-authored-by: mcastorina <[email protected]> * Update source select to use selector Co-authored-by: mcastorina <[email protected]> * Delete source configure page and add blank tabs Co-authored-by: hxnyk <[email protected]> * Add tab placeholder pages for configurationi Co-authored-by: mcastorina <[email protected]> * Added headers and style to each tab Co-authored-by: hxnyk <[email protected]> * Update with new sources * Remove kingpin attribute from SourceItem * Add basic form field and source structuring * Hookup git form fields with an underlying textinput component Co-authored-by: hxnyk <[email protected]> * Update forms for git and github Co-authored-by: mcastorina <[email protected]> * Add labels per text input * Add sources and adjust styling * add basic trufflehog configuration page * Add skip button to textinputs component * Emit and handle textinputs skip/submit button commands * Don't quit when q is pressed on the sourceConfigurePage * Build trufflehog command based on source config vals Co-authored-by: mcastorina <[email protected]> * Build flags based on truffle config inputs * Update summary section * Add generated truffle fields Co-authored-by: mcastorina <[email protected]> * update summary to correctly print info * Go back a page when escape key is pressed * WIP run page list Co-authored-by: hxnyk <[email protected]> * Allow running trufflehog from the run page Co-authored-by: hxnyk <[email protected]> * Add option to view help docs Co-authored-by: mcastorina <[email protected]> * comment out unused styles and remove unused types * Capitalize H in TruffleHog * remove unneeded fmt.Sprintf --------- Co-authored-by: mcastorina <[email protected]>
218 lines
2.6 KiB
Go
218 lines
2.6 KiB
Go
package keymap
|
|
|
|
import "github.com/charmbracelet/bubbles/key"
|
|
|
|
// KeyMap is a map of key bindings for the UI.
|
|
type KeyMap struct {
|
|
Quit key.Binding
|
|
CmdQuit key.Binding
|
|
Up key.Binding
|
|
Down key.Binding
|
|
UpDown key.Binding
|
|
LeftRight key.Binding
|
|
Arrows key.Binding
|
|
Select key.Binding
|
|
Section key.Binding
|
|
Back key.Binding
|
|
PrevPage key.Binding
|
|
NextPage key.Binding
|
|
Help key.Binding
|
|
|
|
SelectItem key.Binding
|
|
BackItem key.Binding
|
|
|
|
Copy key.Binding
|
|
}
|
|
|
|
// DefaultKeyMap returns the default key map.
|
|
func DefaultKeyMap() *KeyMap {
|
|
km := new(KeyMap)
|
|
|
|
km.Quit = key.NewBinding(
|
|
key.WithKeys(
|
|
"ctrl+c",
|
|
),
|
|
key.WithHelp(
|
|
"ctrl+c",
|
|
"quit",
|
|
),
|
|
)
|
|
|
|
km.CmdQuit = key.NewBinding(
|
|
key.WithKeys(
|
|
"q",
|
|
"ctrl+c",
|
|
),
|
|
key.WithHelp(
|
|
"q",
|
|
"quit",
|
|
),
|
|
)
|
|
|
|
km.Up = key.NewBinding(
|
|
key.WithKeys(
|
|
"up",
|
|
"k",
|
|
),
|
|
key.WithHelp(
|
|
"↑/k",
|
|
"up",
|
|
),
|
|
)
|
|
|
|
km.Down = key.NewBinding(
|
|
key.WithKeys(
|
|
"down",
|
|
"j",
|
|
),
|
|
key.WithHelp(
|
|
"↓/j",
|
|
"down",
|
|
),
|
|
)
|
|
|
|
km.UpDown = key.NewBinding(
|
|
key.WithKeys(
|
|
"up",
|
|
"down",
|
|
"k",
|
|
"j",
|
|
),
|
|
key.WithHelp(
|
|
"↑↓",
|
|
"navigate",
|
|
),
|
|
)
|
|
|
|
km.LeftRight = key.NewBinding(
|
|
key.WithKeys(
|
|
"left",
|
|
"h",
|
|
"right",
|
|
"l",
|
|
),
|
|
key.WithHelp(
|
|
"←→",
|
|
"navigate",
|
|
),
|
|
)
|
|
|
|
km.Arrows = key.NewBinding(
|
|
key.WithKeys(
|
|
"up",
|
|
"right",
|
|
"down",
|
|
"left",
|
|
"k",
|
|
"j",
|
|
"h",
|
|
"l",
|
|
),
|
|
key.WithHelp(
|
|
"↑←↓→",
|
|
"navigate",
|
|
),
|
|
)
|
|
|
|
km.Select = key.NewBinding(
|
|
key.WithKeys(
|
|
"enter",
|
|
),
|
|
key.WithHelp(
|
|
"enter",
|
|
"select",
|
|
),
|
|
)
|
|
|
|
km.Section = key.NewBinding(
|
|
key.WithKeys(
|
|
"tab",
|
|
"shift+tab",
|
|
),
|
|
key.WithHelp(
|
|
"tab",
|
|
"section",
|
|
),
|
|
)
|
|
|
|
km.Back = key.NewBinding(
|
|
key.WithKeys(
|
|
"esc",
|
|
),
|
|
key.WithHelp(
|
|
"esc",
|
|
"back",
|
|
),
|
|
)
|
|
|
|
km.PrevPage = key.NewBinding(
|
|
key.WithKeys(
|
|
"pgup",
|
|
"b",
|
|
"u",
|
|
),
|
|
key.WithHelp(
|
|
"pgup",
|
|
"prev page",
|
|
),
|
|
)
|
|
|
|
km.NextPage = key.NewBinding(
|
|
key.WithKeys(
|
|
"pgdown",
|
|
"f",
|
|
"d",
|
|
),
|
|
key.WithHelp(
|
|
"pgdn",
|
|
"next page",
|
|
),
|
|
)
|
|
|
|
km.Help = key.NewBinding(
|
|
key.WithKeys(
|
|
"?",
|
|
),
|
|
key.WithHelp(
|
|
"?",
|
|
"toggle help",
|
|
),
|
|
)
|
|
|
|
km.SelectItem = key.NewBinding(
|
|
key.WithKeys(
|
|
"l",
|
|
"right",
|
|
),
|
|
key.WithHelp(
|
|
"→",
|
|
"select",
|
|
),
|
|
)
|
|
|
|
km.BackItem = key.NewBinding(
|
|
key.WithKeys(
|
|
"h",
|
|
"left",
|
|
"backspace",
|
|
),
|
|
key.WithHelp(
|
|
"←",
|
|
"back",
|
|
),
|
|
)
|
|
|
|
km.Copy = key.NewBinding(
|
|
key.WithKeys(
|
|
"c",
|
|
"ctrl+c",
|
|
),
|
|
key.WithHelp(
|
|
"c",
|
|
"copy text",
|
|
),
|
|
)
|
|
|
|
return km
|
|
}
|