From 3dd390c0cb56ffb5a7c1f94afaed0b80ad12cbe1 Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Wed, 13 Mar 2024 06:47:19 +0530 Subject: repo: init --- cmd/redqctl/main.go | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 cmd/redqctl/main.go (limited to 'cmd/redqctl/main.go') diff --git a/cmd/redqctl/main.go b/cmd/redqctl/main.go new file mode 100644 index 0000000..f6f9e9e --- /dev/null +++ b/cmd/redqctl/main.go @@ -0,0 +1,74 @@ +package main + +import ( + "flag" + "fmt" + "log" + "os" + + redqdb "sinanmohd.com/redq/db" +) + +func help() { + const helpString string = +`redqctl is a tool for managing redq. + +Usage: + + redqctl [arguments] + +The commands are: + + create create a redq account + help show this help cruft + +` + + fmt.Print(helpString) +} + +func create(args []string, db *redqdb.SafeDB) { + f := flag.NewFlagSet("create", flag.ExitOnError) + ac := &redqdb.Account{} + ac.Info = &redqdb.Login{} + + f.StringVar(&ac.Email, "email", "", + "The email to associate with the account") + f.StringVar(&ac.Info.FirstName, "fname", "", + "The first name to associate with the account") + f.StringVar(&ac.Info.LastName, "lname", "", + "The last name to associate with the account") + f.StringVar(&ac.PassHash, "pass", "", + "The password to associate with the account") + f.UintVar(&ac.Info.Level, "level", 0, + "The level to associate with the account") + f.Parse(args) + + err := ac.CreateAccount(db) + if err != nil { + log.Fatal(err) + } +} + +func main() { + args := os.Args[1:] + if len(args) == 0 { + help() + os.Exit(2) + } + + db, err := redqdb.NewSafeDB() + if err != nil { + log.Fatal(err) + } + + switch args[0] { + case "help": + help() + case "create": + create(args[1:], db) + default: + help() + os.Exit(2) + } +} -- cgit v1.2.3