github.com/sqlitebrowser/dio@v0.0.0-20240125125356-b587368e5c6b/cmd/select.go (about) 1 package cmd 2 3 import ( 4 "errors" 5 "fmt" 6 7 "github.com/spf13/cobra" 8 ) 9 10 // Selects the default database, or if no database name is given it displays the default database 11 var selectCmd = &cobra.Command{ 12 Use: "select", 13 Short: "Selects the default database used by all dio commands", 14 RunE: func(cmd *cobra.Command, args []string) error { 15 return selectDefault(args) 16 }, 17 } 18 19 func init() { 20 RootCmd.AddCommand(selectCmd) 21 } 22 23 func selectDefault(args []string) error { 24 // Ensure a database file was given 25 var db string 26 var err error 27 if len(args) == 0 { 28 db, err = getDefaultDatabase() 29 if err != nil { 30 return err 31 } 32 _, err = fmt.Fprintf(fOut, "Default database: '%s'\n", db) 33 if err != nil { 34 return err 35 } 36 return nil 37 } 38 if len(args) > 1 { 39 return errors.New("Only one database can be selected as the default (for now)") 40 } 41 42 // Save the given text string as the default database 43 // TODO: Add some error checking here (eg does the database exist locally or remotely?) 44 db = args[0] 45 err = saveDefaultDatabase(db) 46 if err != nil { 47 return err 48 } 49 return nil 50 }