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 }