github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/flags/project/code_or_config.go (about)

     1  package projectFlags
     2  
     3  import (
     4  	projectI18n "github.com/taubyte/tau-cli/i18n/project"
     5  	"github.com/urfave/cli/v2"
     6  )
     7  
     8  var ConfigOnly = &cli.BoolFlag{
     9  	Name:    "config-only",
    10  	Aliases: []string{"config"},
    11  	Usage:   "only the configuration repository",
    12  }
    13  
    14  var CodeOnly = &cli.BoolFlag{
    15  	Name:    "code-only",
    16  	Aliases: []string{"code"},
    17  	Usage:   "only the code repository",
    18  }
    19  
    20  func ParseConfigCodeFlags(ctx *cli.Context) (config bool, code bool, err error) {
    21  	config = ctx.Bool(ConfigOnly.Name)
    22  	code = ctx.Bool(CodeOnly.Name)
    23  
    24  	// Cannot clone only code and only config
    25  	if config && code {
    26  		return false, false, projectI18n.BothFlagsCannotBeTrue(ConfigOnly.Name, CodeOnly.Name)
    27  	}
    28  
    29  	// Neither only option is selected so both are true
    30  	if !config && !code {
    31  		return true, true, nil
    32  	}
    33  
    34  	return config, code, nil
    35  }