github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/resources/project/query.go (about) 1 package project 2 3 import ( 4 "github.com/taubyte/tau-cli/cli/common" 5 "github.com/taubyte/tau-cli/flags" 6 projectI18n "github.com/taubyte/tau-cli/i18n/project" 7 projectLib "github.com/taubyte/tau-cli/lib/project" 8 projectPrompts "github.com/taubyte/tau-cli/prompts/project" 9 "github.com/taubyte/tau-cli/prompts/spinner" 10 projectTable "github.com/taubyte/tau-cli/table/project" 11 "github.com/urfave/cli/v2" 12 ) 13 14 func (link) Query() common.Command { 15 return common.Create( 16 &cli.Command{ 17 Flags: []cli.Flag{ 18 flags.List, 19 flags.Select, 20 }, 21 Action: query, 22 }, 23 ) 24 } 25 26 func (link) List() common.Command { 27 return common.Create( 28 &cli.Command{ 29 Action: list, 30 }, 31 ) 32 } 33 34 func query(ctx *cli.Context) error { 35 if ctx.Bool(flags.List.Name) { 36 return list(ctx) 37 } 38 39 // If --select is set we should not check the user's currently selected project 40 checkEnv := !ctx.Bool(flags.Select.Name) 41 42 project, err := projectPrompts.GetOrSelect(ctx, checkEnv) 43 if err != nil { 44 return err 45 } 46 stopGlobe := spinner.Globe() 47 repos, err := project.Repositories() 48 if err != nil { 49 return projectI18n.GettingRepositoriesFailed(project.Name, err) 50 } 51 52 description := projectLib.Description(project) 53 stopGlobe() 54 55 projectTable.Query(project, repos, description) 56 57 return nil 58 }