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  }