Skip to content

Commit 113cba2

Browse files
realfabeckerhaaawk
authored andcommitted
feat(db/destroy): allow autocomplete for multi database-name
1 parent 1f33119 commit 113cba2

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

internal/cmd/db_destroy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var destroyCmd = &cobra.Command{
2222
Use: "destroy <database-name>",
2323
Short: "Destroy a database.",
2424
Args: cobra.MinimumNArgs(1),
25-
ValidArgsFunction: dbNameArg,
25+
ValidArgsFunction: dbNameListArg,
2626
RunE: func(cmd *cobra.Command, args []string) error {
2727
cmd.SilenceUsage = true
2828

internal/cmd/utils.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"net/http"
99
"net/url"
1010
"os"
11+
"slices"
1112
"strings"
1213
"time"
1314

@@ -298,6 +299,20 @@ func dbNameArg(cmd *cobra.Command, args []string, toComplete string) ([]string,
298299
return []string{}, cobra.ShellCompDirectiveNoFileComp
299300
}
300301

302+
func dbNameListArg(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
303+
client, err := authedTursoClient()
304+
if err != nil {
305+
return []string{}, cobra.ShellCompDirectiveNoFileComp
306+
}
307+
var dbNameList = make([]string, 0)
308+
for _, dbName := range getDatabaseNames(client) {
309+
if !slices.Contains(args, dbName) {
310+
dbNameList = append(dbNameList, dbName)
311+
}
312+
}
313+
return dbNameList, cobra.ShellCompDirectiveNoFileComp
314+
}
315+
301316
func dbNameAndOrgArgs(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
302317
client, err := authedTursoClient()
303318
if err != nil {

0 commit comments

Comments
 (0)