Files
console/example/pkg/command/create_user.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

52 lines
1.3 KiB
Go

package command
import (
"context"
"gitoa.ru/go-4devs/config"
"gitoa.ru/go-4devs/config/definition/option"
cparam "gitoa.ru/go-4devs/config/param"
argument "gitoa.ru/go-4devs/config/provider/arg"
"gitoa.ru/go-4devs/console"
"gitoa.ru/go-4devs/console/command"
"gitoa.ru/go-4devs/console/output"
"gitoa.ru/go-4devs/console/param"
)
func CreateUser(required bool) command.Command {
return command.New(
"app:create-user",
"Creates a new user.",
UserExecute,
command.Configure(UserConfigure(required)),
command.Help(func(param.HData) (string, error) {
return "This command allows you to create a user...", nil
}),
)
}
func UserConfigure(required bool) func(_ context.Context, cfg config.Definition) error {
return func(_ context.Context, cfg config.Definition) error {
var opts []cparam.Option
if required {
opts = append(opts, option.Required)
}
cfg.
Add(
argument.String("username", "The username of the user.", option.Required),
argument.String("password", "User password", opts...),
)
return nil
}
}
func UserExecute(ctx context.Context, in config.Provider, out output.Output) error {
// outputs a message followed by a "\n"
out.Println(ctx, "User Creator")
out.Println(ctx, "Username: ", console.ReadValue(ctx, in, "username").String())
return nil
}