Skip to content

Commit 3b920e4

Browse files
adnaanclaude
andcommitted
feat(auth): add --db flag to auth management commands
Allow specifying a custom database path: lvt auth --db /path/to/app.db list lvt auth --db /path/to/app.db confirm user@example.com 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent bd58399 commit 3b920e4

2 files changed

Lines changed: 39 additions & 17 deletions

File tree

commands/auth_manage.go

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,53 @@ import (
1313
// AuthManage handles auth management subcommands (confirm, list, etc.)
1414
func AuthManage(args []string) error {
1515
if len(args) == 0 {
16-
return fmt.Errorf("missing subcommand\n\nUsage:\n lvt auth confirm <email> Confirm a user's email (for testing)\n lvt auth list List all users")
16+
return fmt.Errorf("missing subcommand\n\nUsage:\n lvt auth [--db <path>] confirm <email> Confirm a user's email (for testing)\n lvt auth [--db <path>] list List all users")
17+
}
18+
19+
// Parse --db flag
20+
var dbPath string
21+
var filteredArgs []string
22+
for i := 0; i < len(args); i++ {
23+
if args[i] == "--db" && i+1 < len(args) {
24+
dbPath = args[i+1]
25+
i++ // skip the path argument
26+
} else {
27+
filteredArgs = append(filteredArgs, args[i])
28+
}
29+
}
30+
31+
if len(filteredArgs) == 0 {
32+
return fmt.Errorf("missing subcommand\n\nUsage:\n lvt auth [--db <path>] confirm <email> Confirm a user's email (for testing)\n lvt auth [--db <path>] list List all users")
1733
}
1834

19-
subcommand := args[0]
20-
subArgs := args[1:]
35+
subcommand := filteredArgs[0]
36+
subArgs := filteredArgs[1:]
2137

2238
switch subcommand {
2339
case "confirm":
24-
return AuthConfirm(subArgs)
40+
return AuthConfirm(subArgs, dbPath)
2541
case "list":
26-
return AuthList(subArgs)
42+
return AuthList(subArgs, dbPath)
2743
default:
2844
return fmt.Errorf("unknown auth subcommand: %s\n\nAvailable subcommands:\n confirm <email> Confirm a user's email (for testing)\n list List all users", subcommand)
2945
}
3046
}
3147

3248
// AuthConfirm confirms a user's email in the database
33-
func AuthConfirm(args []string) error {
49+
func AuthConfirm(args []string, dbPath string) error {
3450
if len(args) == 0 {
3551
return fmt.Errorf("missing email address\n\nUsage: lvt auth confirm <email>")
3652
}
3753

3854
email := args[0]
3955

40-
// Find the database file
41-
dbPath, err := findDatabaseFile()
42-
if err != nil {
43-
return err
56+
// Find the database file if not specified
57+
if dbPath == "" {
58+
var err error
59+
dbPath, err = findDatabaseFile()
60+
if err != nil {
61+
return err
62+
}
4463
}
4564

4665
// Open database
@@ -79,11 +98,14 @@ func AuthConfirm(args []string) error {
7998
}
8099

81100
// AuthList lists all users in the database
82-
func AuthList(args []string) error {
83-
// Find the database file
84-
dbPath, err := findDatabaseFile()
85-
if err != nil {
86-
return err
101+
func AuthList(args []string, dbPath string) error {
102+
// Find the database file if not specified
103+
if dbPath == "" {
104+
var err error
105+
dbPath, err = findDatabaseFile()
106+
if err != nil {
107+
return err
108+
}
87109
}
88110

89111
// Open database

main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,8 @@ func printUsage() {
191191
fmt.Println(" lvt gen auth --no-csrf Skip CSRF protection")
192192
fmt.Println()
193193
fmt.Println("Auth Management Commands (for testing):")
194-
fmt.Println(" lvt auth confirm <email> Confirm a user's email")
195-
fmt.Println(" lvt auth list List all users")
194+
fmt.Println(" lvt auth [--db <path>] confirm <email> Confirm a user's email")
195+
fmt.Println(" lvt auth [--db <path>] list List all users")
196196
fmt.Println()
197197
fmt.Println("Migration Commands:")
198198
fmt.Println(" lvt migration up Run pending migrations")

0 commit comments

Comments
 (0)