mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-20 03:27:03 -07:00
refactor: updated cache editor implementation
This commit is contained in:
parent
b8431a84af
commit
f1f8e4f3fb
4 changed files with 25 additions and 63 deletions
25
cmd/cache.go
25
cmd/cache.go
|
|
@ -270,6 +270,31 @@ var cacheInfoCmd = &cobra.Command{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var cacheEditCmd = &cobra.Command{
|
||||||
|
Use: "edit",
|
||||||
|
Short: "Modify cache data either interactively or non-interactively.",
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
// start the interactive editor
|
||||||
|
if interactive {
|
||||||
|
p := tea.NewProgram(cache.NewModel())
|
||||||
|
if _, err := p.Run(); err != nil {
|
||||||
|
fmt.Printf("failed to start the cache editor: %v", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// only edit data with arguments
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
var cacheInfoCmd = &cobra.Command{
|
||||||
|
Use: "info",
|
||||||
|
Short: "Show cache-related information.",
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
printCacheInfo(cacheOutputFormat)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
cacheEditCmd.Flags().StringVar(&host, "host", "", "Set the new host value.")
|
cacheEditCmd.Flags().StringVar(&host, "host", "", "Set the new host value.")
|
||||||
cacheEditCmd.Flags().IntSliceVar(&ports, "port", nil, "Set the new port values as comma-separated list.")
|
cacheEditCmd.Flags().IntSliceVar(&ports, "port", nil, "Set the new port values as comma-separated list.")
|
||||||
|
|
|
||||||
48
internal/cache/edit/table.go
vendored
48
internal/cache/edit/table.go
vendored
|
|
@ -1,48 +0,0 @@
|
||||||
package cache
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/charmbracelet/bubbles/table"
|
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
|
||||||
"github.com/charmbracelet/lipgloss"
|
|
||||||
)
|
|
||||||
|
|
||||||
var baseStyle = lipgloss.NewStyle().
|
|
||||||
BorderStyle(lipgloss.NormalBorder()).
|
|
||||||
BorderForeground(lipgloss.Color("240"))
|
|
||||||
|
|
||||||
type Model struct {
|
|
||||||
selected int
|
|
||||||
Table table.Model
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m Model) Init() tea.Cmd { return nil }
|
|
||||||
|
|
||||||
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|
||||||
var cmd tea.Cmd
|
|
||||||
switch msg := msg.(type) {
|
|
||||||
case tea.WindowSizeMsg:
|
|
||||||
// m.Table = m.Table.Width(msg.Width)
|
|
||||||
// m.Table = m.Table.Height(msg.Height)
|
|
||||||
case tea.KeyMsg:
|
|
||||||
switch msg.String() {
|
|
||||||
case "esc":
|
|
||||||
if m.Table.Focused() {
|
|
||||||
m.Table.Blur()
|
|
||||||
} else {
|
|
||||||
m.Table.Focus()
|
|
||||||
}
|
|
||||||
case "q", "ctrl+c":
|
|
||||||
return m, tea.Quit
|
|
||||||
case "enter":
|
|
||||||
return m, tea.Batch(
|
|
||||||
tea.Printf("Selected host '%s'", m.Table.SelectedRow()[0]),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m.Table, cmd = m.Table.Update(msg)
|
|
||||||
return m, cmd
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m Model) View() string {
|
|
||||||
return baseStyle.Render(m.Table.View()) + "\n"
|
|
||||||
}
|
|
||||||
15
pkg/list.go
15
pkg/list.go
|
|
@ -27,21 +27,6 @@ func PrintRemoteAssets(data []RemoteAsset, format string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func PrintMapWithFormat(data map[string]any, format string) {
|
|
||||||
switch strings.ToLower(format) {
|
|
||||||
case "json":
|
|
||||||
util.PrintJSON(data)
|
|
||||||
case "yaml":
|
|
||||||
util.PrintYAML(data)
|
|
||||||
case "list":
|
|
||||||
for k, v := range data {
|
|
||||||
fmt.Printf("%s: %v\n", k, v)
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
log.Error().Msg("PrintMapWithFormat: unrecognized format")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func ListDrives(cc *crawler.CrawlerConfig) ([]*redfish.Drive, error) {
|
func ListDrives(cc *crawler.CrawlerConfig) ([]*redfish.Drive, error) {
|
||||||
user, err := cc.GetUserPass()
|
user, err := cc.GetUserPass()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue