mirror of
https://github.com/opbnq-q/nto-cli.git
synced 2025-12-06 16:20:34 +07:00
feat: hide implement models from select
This commit is contained in:
@@ -13,9 +13,14 @@ func SelectionInput() ([]string, string) {
|
|||||||
log.Fatalf("Please provide path to models.go")
|
log.Fatalf("Please provide path to models.go")
|
||||||
}
|
}
|
||||||
|
|
||||||
path := os.Args[1]
|
modelsPath := os.Args[1]
|
||||||
|
|
||||||
structNames := utils.GetStructList(path)
|
structNames := utils.GetNotImplementedStructs(modelsPath)
|
||||||
|
|
||||||
|
if len(structNames) == 0 {
|
||||||
|
log.Println("No unimplemented models -> nothing to do")
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
var result []string
|
var result []string
|
||||||
|
|
||||||
@@ -30,7 +35,7 @@ func SelectionInput() ([]string, string) {
|
|||||||
form.AddFormItem(cb)
|
form.AddFormItem(cb)
|
||||||
}
|
}
|
||||||
|
|
||||||
form.AddButton("Confirm", func() {
|
form.AddButton("Generate", func() {
|
||||||
for i, cb := range checkboxes {
|
for i, cb := range checkboxes {
|
||||||
if cb.IsChecked() {
|
if cb.IsChecked() {
|
||||||
result = append(result, structNames[i])
|
result = append(result, structNames[i])
|
||||||
@@ -43,5 +48,5 @@ func SelectionInput() ([]string, string) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, path
|
return result, modelsPath
|
||||||
}
|
}
|
||||||
1
main.go
1
main.go
@@ -18,6 +18,7 @@ func main() {
|
|||||||
log.Fatalf("Failed to open file: %s", err)
|
log.Fatalf("Failed to open file: %s", err)
|
||||||
}
|
}
|
||||||
structFields := utils.GetStructFields(file, structName)
|
structFields := utils.GetStructFields(file, structName)
|
||||||
|
_ = file.Close()
|
||||||
generation.Generate(structName, structFields)
|
generation.Generate(structName, structFields)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
11
utils/get_not_implemented_structs.go
Normal file
11
utils/get_not_implemented_structs.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
func GetNotImplementedStructs(modelsFilePath string) []string {
|
||||||
|
var models []string
|
||||||
|
for _, model := range GetStructsList(modelsFilePath) {
|
||||||
|
if !IsEntityImplemented(model) {
|
||||||
|
models = append(models, model)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return models
|
||||||
|
}
|
||||||
@@ -10,9 +10,7 @@ import (
|
|||||||
|
|
||||||
func GetStructFields(file *os.File, structName string) []entities.Field {
|
func GetStructFields(file *os.File, structName string) []entities.Field {
|
||||||
bracketsCount := 1
|
bracketsCount := 1
|
||||||
|
var structFound bool
|
||||||
structFound := false
|
|
||||||
|
|
||||||
var structFields []entities.Field
|
var structFields []entities.Field
|
||||||
|
|
||||||
scanner := bufio.NewScanner(file)
|
scanner := bufio.NewScanner(file)
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetStructList(filePath string) []string {
|
func GetStructsList(modelsFilePath string) []string {
|
||||||
file, err := os.Open(filePath)
|
file, err := os.Open(modelsFilePath)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to open a file: %s", err)
|
log.Fatalf("Failed to open a file: %s", err)
|
||||||
|
|||||||
16
utils/is_implemented.go
Normal file
16
utils/is_implemented.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func IsEntityImplemented(entityName string) bool {
|
||||||
|
entityDirectory := filepath.Join(FindFrontendPath(), strings.ToLower(entityName))
|
||||||
|
if _, err := os.Stat(entityDirectory); os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user