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: ", console.ReadValue(ctx, in, "foo").Bool(), "") out.Println(ctx, "bar: ", console.ReadValue(ctx, in, "bar").String(), "") out.Println(ctx, "cat: ", console.ReadValue(ctx, in, "cat").String(), "") out.Println(ctx, "time: ", console.ReadValue(ctx, in, "time").Time().Format(time.RFC3339), "") out.Println(ctx, "hidden: ", console.ReadValue(ctx, in, "hidden").Time().Format(time.RFC3339), "") return nil }