Files
console/example/pkg/command/args.go
andrey 0d661986d1
All checks were successful
Go Action / goaction (pull_request) Successful in 56s
update example
2026-01-05 23:51:55 +03:00

44 lines
1.4 KiB
Go

package command
import (
"context"
"time"
"gitoa.ru/go-4devs/config"
"gitoa.ru/go-4devs/config/definition/option"
"gitoa.ru/go-4devs/console"
"gitoa.ru/go-4devs/console/command"
"gitoa.ru/go-4devs/console/output"
)
func Args() command.Command {
return command.New(
"fdevs:console:arg",
"Understanding how Console Arguments and Options Are Handled",
ArgExecute,
command.Configure(ArgConfigure),
)
}
func ArgConfigure(_ context.Context, def config.Definition) error {
def.Add(
option.Bool("foo", "foo option", option.Short('f')),
option.String("bar", "required bar option", option.Required, option.Short('b')),
option.String("cat", "cat option", option.Short('c')),
option.Time("time", "time example"),
option.Time("hidden", "hidden time example", option.Hidden),
)
return nil
}
func ArgExecute(ctx context.Context, in config.Provider, out output.Output) error {
out.Println(ctx, "foo: <info>", console.ReadValue(ctx, in, "foo").Bool(), "</info>")
out.Println(ctx, "bar: <info>", console.ReadValue(ctx, in, "bar").String(), "</info>")
out.Println(ctx, "cat: <info>", console.ReadValue(ctx, in, "cat").String(), "</info>")
out.Println(ctx, "time: <info>", console.ReadValue(ctx, in, "time").Time().Format(time.RFC3339), "</info>")
out.Println(ctx, "hidden: <info>", console.ReadValue(ctx, in, "hidden").Time().Format(time.RFC3339), "</info>")
return nil
}