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  }