github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/prompts/database/new.go (about) 1 package databasePrompts 2 3 import ( 4 "github.com/taubyte/go-project-schema/common" 5 structureSpec "github.com/taubyte/go-specs/structure" 6 databaseLib "github.com/taubyte/tau-cli/lib/database" 7 "github.com/taubyte/tau-cli/prompts" 8 "github.com/urfave/cli/v2" 9 ) 10 11 func New(ctx *cli.Context) (*structureSpec.Database, error) { 12 database := &structureSpec.Database{} 13 14 taken, err := databaseLib.List() 15 if err != nil { 16 return nil, err 17 } 18 19 database.Name = prompts.GetOrRequireAUniqueName(ctx, NamePrompt, taken) 20 database.Description = prompts.GetOrAskForADescription(ctx) 21 database.Tags = prompts.GetOrAskForTags(ctx) 22 23 database.Regex = prompts.GetMatchRegex(ctx) 24 database.Match = GetOrRequireAMatch(ctx) 25 database.Local = prompts.GetOrAskForLocal(ctx) 26 27 if GetEncryption(ctx) { 28 database.Key = GetOrRequireAnEncryptionKey(ctx) 29 } 30 31 database.Min, database.Max, _, _ = GetOrAskForMinMax(ctx, 0, 0, true) 32 33 database.Size, err = common.StringToUnits(prompts.GetSizeAndType(ctx, "", true)) 34 if err != nil { 35 // TODO verbose 36 return nil, err 37 } 38 39 return database, nil 40 }