From fddd79b64b2f1e9cbccf61440efcb38dbb31c6af Mon Sep 17 00:00:00 2001
From: Kyle Carberry <kyle@carberry.com>
Date: Wed, 7 Sep 2022 21:13:17 +0000
Subject: [PATCH] fix: Show the users workspaces by default on `coder ls`

Fixes #3945.
---
 cli/list.go | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/cli/list.go b/cli/list.go
index 4f35a5c6c7c77..fe664bd4f9052 100644
--- a/cli/list.go
+++ b/cli/list.go
@@ -58,9 +58,10 @@ func workspaceListRowFromWorkspace(now time.Time, usersByID map[uuid.UUID]coders
 
 func list() *cobra.Command {
 	var (
-		columns     []string
-		searchQuery string
-		me          bool
+		all          bool
+		columns      []string
+		defaultQuery = "owner:me"
+		searchQuery  string
 	)
 	cmd := &cobra.Command{
 		Annotations: workspaceCommand,
@@ -76,12 +77,8 @@ func list() *cobra.Command {
 			filter := codersdk.WorkspaceFilter{
 				FilterQuery: searchQuery,
 			}
-			if me {
-				myUser, err := client.User(cmd.Context(), codersdk.Me)
-				if err != nil {
-					return err
-				}
-				filter.Owner = myUser.Username
+			if all && searchQuery == defaultQuery {
+				filter.FilterQuery = ""
 			}
 			workspaces, err := client.Workspaces(cmd.Context(), filter)
 			if err != nil {
@@ -118,9 +115,10 @@ func list() *cobra.Command {
 			return err
 		},
 	}
+	cmd.Flags().BoolVarP(&all, "all", "a", false,
+		"Specifies whether all workspaces will be listed or not.")
 	cmd.Flags().StringArrayVarP(&columns, "column", "c", nil,
 		"Specify a column to filter in the table.")
-	cmd.Flags().StringVar(&searchQuery, "search", "", "Search for a workspace with a query.")
-	cmd.Flags().BoolVar(&me, "me", false, "Only show workspaces owned by the current user.")
+	cmd.Flags().StringVar(&searchQuery, "search", defaultQuery, "Search for a workspace with a query.")
 	return cmd
 }