diff --git a/go.mod b/go.mod index c27b403..af6d3c8 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,10 @@ module git.ymnuktech.ru/ymnuk/yt-gen-app go 1.21 require ( + github.com/alexflint/go-arg v1.4.3 github.com/creasty/defaults v1.7.0 github.com/satori/go.uuid v1.2.0 gopkg.in/yaml.v3 v3.0.1 ) + +require github.com/alexflint/go-scalar v1.2.0 // indirect diff --git a/go.sum b/go.sum index fb85fc8..a1d963c 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,20 @@ +github.com/alexflint/go-arg v1.4.3 h1:9rwwEBpMXfKQKceuZfYcwuc/7YY7tWJbFsgG5cAU/uo= +github.com/alexflint/go-arg v1.4.3/go.mod h1:3PZ/wp/8HuqRZMUUgu7I+e1qcpUbvmS258mRXkFH4IA= +github.com/alexflint/go-scalar v1.1.0 h1:aaAouLLzI9TChcPXotr6gUhq+Scr8rl0P9P4PnltbhM= +github.com/alexflint/go-scalar v1.1.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= +github.com/alexflint/go-scalar v1.2.0 h1:WR7JPKkeNpnYIOfHRa7ivM21aWAdHD0gEWHCx+WQBRw= +github.com/alexflint/go-scalar v1.2.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= github.com/creasty/defaults v1.7.0 h1:eNdqZvc5B509z18lD8yc212CAqJNvfT1Jq6L8WowdBA= github.com/creasty/defaults v1.7.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/lib/config.go b/lib/config.go index 3115d12..5f3a48e 100644 --- a/lib/config.go +++ b/lib/config.go @@ -1,31 +1,31 @@ package lib import ( - "flag" "fmt" - "os" "git.ymnuktech.ru/ymnuk/yt-gen-app/structs" + "github.com/alexflint/go-arg" ) var AppConfig struct { - IsYaml bool - IsJson bool - IsHelp bool + IsYaml bool `arg:"-"` + IsJson bool `arg:"-"` + IsHelp bool `arg:"-"` - Help bool // Вывести справку на экран - Filename string // Файл с метоописанием в формате YAML или JSON - OutdirBackend string // Директория для сохранения кода сервера - OutdirFrontend string // Директория для сохранения кода клиента + Help bool `arg:"-h,--help" help:"Отобразить текущую справку"` // Вывести справку на экран + Filename string `arg:"-m,--metafile" help:"Файл с метоописанием в формате YAML или JSON"` // Файл с метоописанием в формате YAML или JSON + OutdirBackend string `arg:"-b,--outdir-backend" help:"Директория для сохранения кода сервера"` // Директория для сохранения кода сервера + OutdirFrontend string `arg:"-f,--outdir-frontend" help:"Директория для сохранения кода клиента"` // Директория для сохранения кода клиента } var Project *structs.Project func PrepareParams() { - parseArgs() + //parseArgs() + arg.MustParse(&AppConfig) } -func parseArgs() { +/*func parseArgs() { flag.StringVar(&AppConfig.Filename, "metafile", "", "Путь к файлу с описанием для генерации кода") flag.StringVar(&AppConfig.OutdirBackend, "outdir-backend", "", "Путь к директории для сохранения генерируемого кода сервера") flag.StringVar(&AppConfig.OutdirFrontend, "outdir-frontend", "", "Путь к директории для сохранения генерируемого кода клиенат") @@ -36,7 +36,7 @@ func parseArgs() { flag.PrintDefaults() } -} +}*/ func HelpPrint() { fmt.Println(`Утилита предназначена для генерирования некоторых частей кода на основе файла с описанием для облегчения и ускорения написания приложений. Использование: