refactor
This commit is contained in:
47
internal/cmd/render.go
Normal file
47
internal/cmd/render.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/alecthomas/kong"
|
||||
)
|
||||
|
||||
// Функция создания флагов и рагументов
|
||||
func getNewCmd() *CMD {
|
||||
return &CMD{}
|
||||
}
|
||||
|
||||
// Функция создания парсера
|
||||
func getNewParser() *kong.Kong {
|
||||
return kong.Must(
|
||||
kong.Name("mftecmd"),
|
||||
kong.Description("Utility for processing $MFT, $J, $LogFile, $Boot, $SDS"),
|
||||
kong.UsageOnError(),
|
||||
)
|
||||
}
|
||||
|
||||
// Структура 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
|
||||
ctx, err := c.parser.Parse(os.Args[1:])
|
||||
c.parser.FatalIfErrorf(err)
|
||||
_ = ctx
|
||||
|
||||
return &cmd
|
||||
}
|
||||
Reference in New Issue
Block a user