mirror of
https://github.com/opbnq-q/nto-cli.git
synced 2025-12-06 22:20:34 +07:00
56 lines
969 B
Go
56 lines
969 B
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"nto_cli/utils"
|
|
"os"
|
|
|
|
"github.com/rivo/tview"
|
|
)
|
|
|
|
func Input() (string, string) {
|
|
fmt.Print("struct name, path to file (including struct): ")
|
|
var structName, path string
|
|
fmt.Scan(&structName, &path)
|
|
return structName, path
|
|
}
|
|
|
|
func SelectionInput() ([]string, string) {
|
|
if len(os.Args) == 1 {
|
|
log.Fatalf("Please provide path to models.go")
|
|
}
|
|
|
|
path := os.Args[1]
|
|
|
|
structNames := utils.GetStructList(path)
|
|
|
|
var result []string
|
|
|
|
app := tview.NewApplication()
|
|
|
|
form := tview.NewForm()
|
|
var checkboxes []*tview.Checkbox
|
|
|
|
for _, name := range structNames {
|
|
cb := tview.NewCheckbox().SetLabel(name)
|
|
checkboxes = append(checkboxes, cb)
|
|
form.AddFormItem(cb)
|
|
}
|
|
|
|
form.AddButton("Confirm", func() {
|
|
for i, cb := range checkboxes {
|
|
if cb.IsChecked() {
|
|
result = append(result, structNames[i])
|
|
}
|
|
}
|
|
app.Stop()
|
|
})
|
|
|
|
if err := app.SetRoot(form, true).Run(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return result, path
|
|
}
|