init scripts generate mime and extension
This commit is contained in:
60
scripts/command/mime.go
Normal file
60
scripts/command/mime.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package command
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"gitoa.ru/go-4devs/console"
|
||||
"gitoa.ru/go-4devs/console/input"
|
||||
"gitoa.ru/go-4devs/console/input/argument"
|
||||
"gitoa.ru/go-4devs/console/input/option"
|
||||
"gitoa.ru/go-4devs/console/output"
|
||||
"gitoa.ru/go-4devs/mime/scripts/mime"
|
||||
)
|
||||
|
||||
const (
|
||||
ArgFile = "file"
|
||||
OptExtTpl = "ext-tpl"
|
||||
OptExtPackage = "ext-package"
|
||||
OptExtResult = "ext-result"
|
||||
OptMimeTpl = "mime-tpl"
|
||||
OptMimePackage = "mime-package"
|
||||
OptMimeResult = "mime-result"
|
||||
)
|
||||
|
||||
func Mime() *console.Command {
|
||||
return &console.Command{
|
||||
Name: "mime",
|
||||
Description: "generate mime from file",
|
||||
Configure: func(ctx context.Context, cfg *input.Definition) error {
|
||||
cfg.SetArgument(ArgFile, "file", argument.Required)
|
||||
cfg.SetOptions(
|
||||
option.String(OptExtTpl, "extension template", option.Default("mime/tpl/extension.text.tmpl")),
|
||||
option.String(OptExtPackage, "extension package", option.Default("mime")),
|
||||
option.String(OptExtResult, "extension result", option.Default("../extension.go")),
|
||||
option.String(OptMimeTpl, "mime template", option.Default("mime/tpl/mime.text.tmpl")),
|
||||
option.String(OptMimePackage, "mime package", option.Default("mime")),
|
||||
option.String(OptMimeResult, "mime result", option.Default("../mime.go")),
|
||||
)
|
||||
|
||||
return nil
|
||||
},
|
||||
Execute: func(ctx context.Context, input input.Input, output output.Output) error {
|
||||
file := input.Argument(ctx, ArgFile).String()
|
||||
opts := []mime.Option{
|
||||
mime.WithExtTpl(input.Option(ctx, OptExtTpl).String()),
|
||||
mime.WithExtPacakge(input.Option(ctx, OptExtPackage).String()),
|
||||
mime.WithExtResult(input.Option(ctx, OptExtResult).String()),
|
||||
mime.WithMimeTpl(input.Option(ctx, OptMimeTpl).String()),
|
||||
mime.WithMimePackage(input.Option(ctx, OptMimePackage).String()),
|
||||
mime.WithMimeResult(input.Option(ctx, OptMimeResult).String()),
|
||||
}
|
||||
|
||||
if err := mime.Generate(file, opts...); err != nil {
|
||||
return fmt.Errorf("generate:%w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user