github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/prompts/project/visiblity.go (about) 1 package projectPrompts 2 3 import ( 4 projectFlags "github.com/taubyte/tau-cli/flags/project" 5 projectI18n "github.com/taubyte/tau-cli/i18n/project" 6 "github.com/taubyte/tau-cli/prompts" 7 "github.com/urfave/cli/v2" 8 ) 9 10 /* 11 GetOrRequireVisibility parses public and private flags to then return 12 visible or the "public" bool. This will error if both public and private are true 13 */ 14 func GetOrRequireVisibility(ctx *cli.Context) (visible bool, err error) { 15 var ( 16 public, private bool 17 ) 18 19 if ctx.IsSet(projectFlags.Private.Name) { 20 private = ctx.Bool(projectFlags.Private.Name) 21 } 22 23 if ctx.IsSet(projectFlags.Public.Name) { 24 public = ctx.Bool(projectFlags.Public.Name) 25 } 26 27 if public && private { 28 return false, projectI18n.BothFlagsCannotBeTrue(projectFlags.Private.Name, projectFlags.Public.Name) 29 } 30 31 if !public && !private { 32 selectedVisibility, err := prompts.SelectInterface(VisibilityOptions, projectVisibility, Public) 33 if err != nil { 34 return false, projectI18n.SelectingVisibilityFailed(err) 35 } 36 37 return selectedVisibility == Public, nil 38 } 39 40 return public, nil 41 }