37 lines
558 B
Go
37 lines
558 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"),
|
|
kong.UsageOnError(),
|
|
)
|
|
|
|
return c
|
|
}
|
|
|
|
// Метод запуска CLI
|
|
func (c *CLI) Run() *CMD {
|
|
ctx, err := c.parser.Parse(os.Args[1:])
|
|
c.parser.FatalIfErrorf(err)
|
|
_ = ctx
|
|
|
|
return &c.cmd
|
|
}
|