Files
MFTECmd-for-Linux/internal/cmd/render.go
Grigoryev Ilya Alekseevich 03f2eeef09 add validation
2026-04-01 00:50:06 +05:00

52 lines
850 B
Go

package cmd
import (
"os"
"github.com/alecthomas/kong"
)
// Структура CLI
type CLI struct {
parser *kong.Kong
cmd CMD
}
// Создания экземпляра 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, $I30"),
)
return c
}
// Метод запуска CLI
func (c *CLI) Run() *CMD {
// Парсинг флагов и аргументов
ctx, err := c.parser.Parse(os.Args[1:])
if err != nil {
c.parser.FatalIfErrorf(err)
}
// Валидируем команды
err = ValidateLeaf(c)
if err != nil {
c.parser.FatalIfErrorf(err)
}
// Валидируем путь вывода
err = ValidateOutput(c)
if err != nil {
c.parser.FatalIfErrorf(err)
}
_ = ctx
return &c.cmd
}