github.com/henvic/wedeploycli@v1.7.6-0.20200319005353-3630f582f284/command/list/projects/projects.go (about) 1 package listprojects 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/henvic/wedeploycli/cmdflagsfromhost" 8 "github.com/henvic/wedeploycli/color" 9 "github.com/henvic/wedeploycli/command/internal/we" 10 "github.com/henvic/wedeploycli/list" 11 12 "github.com/spf13/cobra" 13 ) 14 15 // ListProjectsCmd is used for getting a list of projects 16 var ListProjectsCmd = &cobra.Command{ 17 Use: "projects", 18 Example: ` lcp list projects --url lfr.cloud`, 19 Short: "Show list of projects", 20 Args: cobra.NoArgs, 21 PreRunE: preRun, 22 RunE: listRun, 23 } 24 25 var ( 26 detailed bool 27 watch bool 28 ) 29 30 var setupHost = cmdflagsfromhost.SetupHost{ 31 Pattern: cmdflagsfromhost.RemotePattern, 32 33 Requires: cmdflagsfromhost.Requires{ 34 Auth: true, 35 }, 36 } 37 38 func preRun(cmd *cobra.Command, args []string) error { 39 return setupHost.Process(context.Background(), we.Context()) 40 } 41 42 func listRun(cmd *cobra.Command, args []string) error { 43 var filter = list.Filter{ 44 Project: setupHost.Project(), 45 HideServices: true, 46 } 47 48 var l = list.New(filter) 49 50 if detailed { 51 l.Details = list.Detailed 52 } 53 54 if !watch { 55 return l.Once(context.Background(), we.Context()) 56 } 57 58 fmt.Println(color.Format(color.FgHiBlack, 59 "List of projects will be updated when a change occurs.\n")) 60 61 l.Watch(context.Background(), we.Context()) 62 return nil 63 } 64 65 func init() { 66 setupHost.Init(ListProjectsCmd) 67 68 ListProjectsCmd.Flags().BoolVarP( 69 &detailed, 70 "detailed", "d", false, "Show more projects details") 71 72 ListProjectsCmd.Flags().BoolVarP(&watch, "watch", "w", false, "Show and watch for changes") 73 }