diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5c51469 Binary files /dev/null and b/.DS_Store differ diff --git a/app/main.go b/app/main.go index 5144006..9814034 100644 --- a/app/main.go +++ b/app/main.go @@ -7,7 +7,8 @@ import ( func main() { program := cmd.NewCLI() - cmd := program.Run() + parsed := program.Run() - fmt.Printf("%+v\n", cmd) + fmt.Printf("%+v\n", parsed) + fmt.Printf("%#v\n", parsed) } diff --git a/internal/.DS_Store b/internal/.DS_Store new file mode 100644 index 0000000..e66f5c7 Binary files /dev/null and b/internal/.DS_Store differ diff --git a/internal/cmd/render.go b/internal/cmd/render.go index 009f8da..3be5c38 100644 --- a/internal/cmd/render.go +++ b/internal/cmd/render.go @@ -6,42 +6,31 @@ import ( "github.com/alecthomas/kong" ) -// Функция создания флагов и рагументов -func getNewCmd() *CMD { - return &CMD{} +// Структура CLI +type CLI struct { + parser *kong.Kong + cmd CMD } -// Функция создания парсера -func getNewParser() *kong.Kong { - return kong.Must( +// Создания экземпляра CLI +func NewCLI() *CLI { + c := &CLI{} + + c.parser = kong.Must( + &c.cmd, kong.Name("mftecmd"), kong.Description("Utility for processing $MFT, $J, $LogFile, $Boot, $SDS"), kong.UsageOnError(), ) + + return c } -// Структура CLI -type cli struct { - parser kong.Kong // Парсер - cmd CMD // Аргументы -} - -// Создания экземпляра CLI. -// Возвращает указатель на экземпляр CLI -func NewCLI() *cli { - return &cli{ - parser: *getNewParser(), - cmd: *getNewCmd(), - } -} - -// Метод запуска CLI. -// Возвращает cmd - экземпляр структуры аргументов и ошибку -func (c *cli) Run() *CMD { - var cmd CMD +// Метод запуска CLI +func (c *CLI) Run() *CMD { ctx, err := c.parser.Parse(os.Args[1:]) c.parser.FatalIfErrorf(err) _ = ctx - return &cmd + return &c.cmd }