1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-21 21:33:18 +01:00
Files
dozzle/internal/support/cli/generate_command.go
2025-02-21 15:05:29 -08:00

39 lines
1.1 KiB
Go

package cli
import (
"embed"
"fmt"
"os"
"github.com/amir20/dozzle/internal/auth"
)
type GenerateCmd struct {
Username string `arg:"positional"`
Password string `arg:"--password, -p" help:"sets the password for the user"`
Name string `arg:"--name, -n" help:"sets the display name for the user"`
Email string `arg:"--email, -e" help:"sets the email for the user"`
Filter string `arg:"--user-filter" help:"sets the filter for the user. This can be a comma separated list of filters."`
}
func (g *GenerateCmd) Run(args Args, embeddedCerts embed.FS) error {
StartEvent(args, "", nil, "generate")
if args.Generate.Username == "" || args.Generate.Password == "" {
return fmt.Errorf("username and password are required")
}
buffer := auth.GenerateUsers(auth.User{
Username: args.Generate.Username,
Password: args.Generate.Password,
Name: args.Generate.Name,
Email: args.Generate.Email,
Filter: args.Generate.Filter,
}, true)
if _, err := os.Stdout.Write(buffer.Bytes()); err != nil {
return fmt.Errorf("failed to write to stdout: %w", err)
}
return nil
}