github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/resources/project/select.go (about)

     1  package project
     2  
     3  import (
     4  	"errors"
     5  
     6  	"github.com/pterm/pterm"
     7  	"github.com/taubyte/tau-cli/cli/common"
     8  	projectI18n "github.com/taubyte/tau-cli/i18n/project"
     9  	projectLib "github.com/taubyte/tau-cli/lib/project"
    10  	projectPrompts "github.com/taubyte/tau-cli/prompts/project"
    11  	"github.com/urfave/cli/v2"
    12  )
    13  
    14  func (link) Select() common.Command {
    15  	return common.Create(
    16  		&cli.Command{
    17  			Action: _select,
    18  		},
    19  	)
    20  }
    21  
    22  func _select(ctx *cli.Context) error {
    23  	project, deselect, err := projectPrompts.GetSelectOrDeselect(ctx)
    24  	if err != nil {
    25  		if errors.Is(err, projectI18n.ErrorNoProjectsFound) {
    26  			pterm.Info.Printf("%s \n  Create new project: %s\n  Import existing project: %s\n", err, pterm.FgGreen.Sprintf("$ tau new project"), pterm.FgGreen.Sprintf("$ tau import project"))
    27  			return nil
    28  		}
    29  
    30  		return err
    31  	}
    32  
    33  	if deselect {
    34  		err = projectLib.Deselect(ctx, project.Name)
    35  		if err != nil {
    36  			return err
    37  		}
    38  		projectI18n.DeselectedProject(project.Name)
    39  	} else {
    40  		err = projectLib.Select(ctx, project.Name)
    41  		if err != nil {
    42  			return err
    43  		}
    44  		projectI18n.SelectedProject(project.Name)
    45  		checkProjectClonedHelp(project.Name)
    46  	}
    47  
    48  	return nil
    49  }