1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package commands
- import (
- "fmt"
- "regexp"
- "strings"
- "git.eugeniocarvalho.dev/eugeniucarvalho/apicodegen/flag"
- )
- const (
- EntitiesPath = "entities"
- ResourcesPath = "resources"
- EnvironmentPath = "env"
- )
- var (
- upperCaseRegex = regexp.MustCompile(`(\s*([A-Z]))`)
- Commands = map[string]func() error{
- "init": initialize,
- "compile": compile,
- "serve": serve,
- "g.entity": generateEntity,
- "g.resource": generateResource,
- }
- basePathFormats = map[bool]string{false: "./%s", true: "./%s/%s"}
- )
- func ExecuteWithFlags() (err error) {
- if err = flag.Initialize(); err != nil {
- return
- }
- command := flag.Command
- if callback, exist := Commands[command]; exist {
- err = callback()
- return
- }
- err = fmt.Errorf("The command '%s' is not valid", command)
- return
- }
- func basePath() string {
- return basePathWithComplement("")
- }
- func basePathWithComplement(complement string) string {
- return fmt.Sprintf(
- basePathFormats[complement != ""],
- project.ID,
- complement,
- )
- }
- func normalizePath(path string) string {
- path = upperCaseRegex.ReplaceAllStringFunc(path, func(m string) string {
- return fmt.Sprintf("-%s", strings.ToLower(strings.Trim(m, " ")))
- })
- path = strings.ReplaceAll(path, " ", "-")
- path = strings.Trim(path, "-")
- return path
- }
|