refactor: clean up nidusctl CLI

This commit is contained in:
2026-08-30 19:54:34 +02:00
parent 9b9cbe2f6f
commit 2e43e32a9f
3 changed files with 106 additions and 115 deletions
+44 -20
View File
@@ -31,31 +31,47 @@ func runUser(dbase *db.DB, args []string) int {
}
func userCreate(dbase *db.DB, args []string) int {
fs := newFlagSet("nidusctl user create")
displayName := fs.String("display-name", "", "display name shown in DAV clients")
email := fs.String("email", "", "email address")
password := fs.String("password", "", "password (omit to be prompted, recommended)")
if err := fs.Parse(args); err != nil {
return 2
var displayName, email, password string
var rest []string
for i := 0; i < len(args); i++ {
switch args[i] {
case "--display-name":
if i+1 < len(args) {
displayName = args[i+1]
i++
}
case "--email":
if i+1 < len(args) {
email = args[i+1]
i++
}
case "--password":
if i+1 < len(args) {
password = args[i+1]
i++
}
default:
rest = append(rest, args[i])
}
}
rest := fs.Args()
if len(rest) != 1 {
fmt.Fprintln(os.Stderr, "usage: nidusctl user create <username> [--display-name NAME] [--email EMAIL] [--password PASSWORD]")
return 2
}
username := rest[0]
pw := *password
if pw == "" {
if password == "" {
var err error
pw, err = promptPassword(username)
password, err = promptPassword(username)
if err != nil {
fmt.Fprintf(os.Stderr, "error reading password: %v\n", err)
return 1
}
}
if err := dbase.CreateUser(username, pw, *displayName, *email); err != nil {
if err := dbase.CreateUser(username, password, displayName, email); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
return 1
}
@@ -98,29 +114,37 @@ func userList(dbase *db.DB, args []string) int {
}
func userPasswd(dbase *db.DB, args []string) int {
fs := newFlagSet("nidusctl user passwd")
password := fs.String("password", "", "new password (omit to be prompted, recommended)")
if err := fs.Parse(args); err != nil {
return 2
var password string
var rest []string
for i := 0; i < len(args); i++ {
switch args[i] {
case "--password":
if i+1 < len(args) {
password = args[i+1]
i++
}
default:
rest = append(rest, args[i])
}
}
rest := fs.Args()
if len(rest) != 1 {
fmt.Fprintln(os.Stderr, "usage: nidusctl user passwd <username> [--password PASSWORD]")
return 2
}
username := rest[0]
pw := *password
if pw == "" {
if password == "" {
var err error
pw, err = promptPassword(username)
password, err = promptPassword(username)
if err != nil {
fmt.Fprintf(os.Stderr, "error reading password: %v\n", err)
return 1
}
}
if err := dbase.SetPassword(username, pw); err != nil {
if err := dbase.SetPassword(username, password); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
return 1
}