@@ -57,7 +57,11 @@ func workspaceListRowFromWorkspace(now time.Time, usersByID map[uuid.UUID]coders
57
57
}
58
58
59
59
func list () * cobra.Command {
60
- var columns []string
60
+ var (
61
+ columns []string
62
+ searchQuery string
63
+ me bool
64
+ )
61
65
cmd := & cobra.Command {
62
66
Annotations : workspaceCommand ,
63
67
Use : "list" ,
@@ -69,7 +73,17 @@ func list() *cobra.Command {
69
73
if err != nil {
70
74
return err
71
75
}
72
- workspaces , err := client .Workspaces (cmd .Context (), codersdk.WorkspaceFilter {})
76
+ filter := codersdk.WorkspaceFilter {
77
+ FilterQuery : searchQuery ,
78
+ }
79
+ if me {
80
+ myUser , err := client .User (cmd .Context (), codersdk .Me )
81
+ if err != nil {
82
+ return err
83
+ }
84
+ filter .Owner = myUser .Username
85
+ }
86
+ workspaces , err := client .Workspaces (cmd .Context (), filter )
73
87
if err != nil {
74
88
return err
75
89
}
@@ -106,5 +120,7 @@ func list() *cobra.Command {
106
120
}
107
121
cmd .Flags ().StringArrayVarP (& columns , "column" , "c" , nil ,
108
122
"Specify a column to filter in the table." )
123
+ cmd .Flags ().StringVar (& searchQuery , "search" , "" , "Search for a workspace with a query." )
124
+ cmd .Flags ().BoolVar (& me , "me" , false , "Only show workspaces owned by the current user." )
109
125
return cmd
110
126
}
0 commit comments