fix structure error

This commit is contained in:
Grigoryev Ilya Alekseevich
2026-03-31 23:34:37 +05:00
parent b8997e1ac9
commit 9af8091edd
4 changed files with 18 additions and 28 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -7,7 +7,8 @@ import (
func main() { func main() {
program := cmd.NewCLI() program := cmd.NewCLI()
cmd := program.Run() parsed := program.Run()
fmt.Printf("%+v\n", cmd) fmt.Printf("%+v\n", parsed)
fmt.Printf("%#v\n", parsed)
} }

BIN
internal/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -6,42 +6,31 @@ import (
"github.com/alecthomas/kong" "github.com/alecthomas/kong"
) )
// Функция создания флагов и рагументов // Структура CLI
func getNewCmd() *CMD { type CLI struct {
return &CMD{} parser *kong.Kong
cmd CMD
} }
// Функция создания парсера // Создания экземпляра CLI
func getNewParser() *kong.Kong { func NewCLI() *CLI {
return kong.Must( c := &CLI{}
c.parser = kong.Must(
&c.cmd,
kong.Name("mftecmd"), kong.Name("mftecmd"),
kong.Description("Utility for processing $MFT, $J, $LogFile, $Boot, $SDS"), kong.Description("Utility for processing $MFT, $J, $LogFile, $Boot, $SDS"),
kong.UsageOnError(), kong.UsageOnError(),
) )
return c
} }
// Структура CLI // Метод запуска CLI
type cli struct { func (c *CLI) Run() *CMD {
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
ctx, err := c.parser.Parse(os.Args[1:]) ctx, err := c.parser.Parse(os.Args[1:])
c.parser.FatalIfErrorf(err) c.parser.FatalIfErrorf(err)
_ = ctx _ = ctx
return &cmd return &c.cmd
} }