chore(cli): replace lipgloss with coder/pretty (#9564)

This change will improve over CLI performance and "snappiness" as well as
substantially reduce our test times. Preliminary benchmarks show
`coder server --help` times cut from 300ms to 120ms on my dogfood
instance.

The inefficiency of lipgloss disproportionately impacts our system, as all help
text for every command is generated whenever any command is invoked.

The `pretty` API could clean up a lot of the code (e.g., by replacing
complex string concatenations with Printf), but this commit is too
expansive as is so that work will be done in a follow up.
This commit is contained in:
Ammar Bandukwala
2023-09-07 16:28:22 -05:00
committed by GitHub
parent 8421f56137
commit dd97fe2bce
80 changed files with 490 additions and 330 deletions
+4 -4
View File
@@ -1,13 +1,13 @@
Usage: coder [global-flags] <subcommand>
Coder v0.0.0-devel — A tool for provisioning self-hosted development environments with Terraform.
- Start a Coder server:
- Start a Coder server:
 $ coder server 
$ coder server
- Get started by creating a template from an example:
- Get started by creating a template from an example:
 $ coder templates init 
$ coder templates init
Subcommands
config-ssh Add an SSH Host entry for your workspaces "ssh
+5 -5
View File
@@ -2,14 +2,14 @@ Usage: coder config-ssh [flags]
Add an SSH Host entry for your workspaces "ssh coder.workspace"
- You can use -o (or --ssh-option) so set SSH options to be used for all your
workspaces:
- You can use -o (or --ssh-option) so set SSH options to be used for all your
workspaces:
 $ coder config-ssh -o ForwardAgent=yes 
$ coder config-ssh -o ForwardAgent=yes
- You can use --dry-run (or -n) to see the changes that would be made:
- You can use --dry-run (or -n) to see the changes that would be made:
 $ coder config-ssh --dry-run 
$ coder config-ssh --dry-run
Options
--coder-binary-path string, $CODER_SSH_CONFIG_BINARY_PATH
+2 -2
View File
@@ -2,9 +2,9 @@ Usage: coder create [flags] [name]
Create a workspace
- Create a workspace for another user (if you have permission):
- Create a workspace for another user (if you have permission):
 $ coder create <username>/<workspace_name> 
$ coder create <username>/<workspace_name>
Options
--parameter string-array, $CODER_RICH_PARAMETER
+2 -2
View File
@@ -2,9 +2,9 @@ Usage: coder dotfiles [flags] <git_repo_url>
Personalize your workspace by applying a canonical dotfiles repository
- Check out and install a dotfiles repository without prompts:
- Check out and install a dotfiles repository without prompts:
 $ coder dotfiles --yes git@github.com:example/dotfiles.git 
$ coder dotfiles --yes git@github.com:example/dotfiles.git
Options
-b, --branch string
+12 -12
View File
@@ -5,27 +5,27 @@ forwarding, use "coder ssh -R".
Aliases: tunnel
- Port forward a single TCP port from 1234 in the workspace to port 5678 on
your local machine:
- Port forward a single TCP port from 1234 in the workspace to port 5678 on your
local machine:
 $ coder port-forward <workspace> --tcp 5678:1234 
$ coder port-forward <workspace> --tcp 5678:1234
- Port forward a single UDP port from port 9000 to port 9000 on your local
machine:
- Port forward a single UDP port from port 9000 to port 9000 on your local
machine:
 $ coder port-forward <workspace> --udp 9000 
$ coder port-forward <workspace> --udp 9000
- Port forward multiple TCP ports and a UDP port:
- Port forward multiple TCP ports and a UDP port:
 $ coder port-forward <workspace> --tcp 8080:8080 --tcp 9000:3000 --udp 5353:53 
$ coder port-forward <workspace> --tcp 8080:8080 --tcp 9000:3000 --udp 5353:53
- Port forward multiple ports (TCP or UDP) in condensed syntax:
- Port forward multiple ports (TCP or UDP) in condensed syntax:
 $ coder port-forward <workspace> --tcp 8080,9000:3000,9090-9092,10000-10002:10010-10012 
$ coder port-forward <workspace> --tcp 8080,9000:3000,9090-9092,10000-10002:10010-10012
- Port forward specifying the local address to bind to:
- Port forward specifying the local address to bind to:
 $ coder port-forward <workspace> --tcp 1.2.3.4:8080:8080 
$ coder port-forward <workspace> --tcp 1.2.3.4:8080:8080
Options
-p, --tcp string-array, $CODER_PORT_FORWARD_TCP
+1 -1
View File
@@ -6,7 +6,7 @@ Override the stop time of a currently running workspace instance.
* The new stop time must be at least 30 minutes in the future.
* The workspace template may restrict the maximum workspace runtime.
 $ coder schedule override-stop my-workspace 90m 
$ coder schedule override-stop my-workspace 90m
---
Run `coder --help` for a list of global options.
+2 -2
View File
@@ -12,9 +12,9 @@ Schedule format: <start-time> [day-of-week] [location].
If omitted, we will fall back to either the TZ environment variable or /etc/localtime.
You can check your corresponding location by visiting https://ipinfo.io - it shows in the demo widget on the right.
- Set the workspace to start at 9:30am (in Dublin) from Monday to Friday:
- Set the workspace to start at 9:30am (in Dublin) from Monday to Friday:
 $ coder schedule start my-workspace 9:30AM Mon-Fri Europe/Dublin 
$ coder schedule start my-workspace 9:30AM Mon-Fri Europe/Dublin
---
Run `coder --help` for a list of global options.
+1 -1
View File
@@ -15,7 +15,7 @@ When enabling scheduled stop, enter a duration in one of the following formats:
* 2m (2 minutes)
* 2 (2 minutes)
 $ coder schedule stop my-workspace 2h30m 
$ coder schedule stop my-workspace 2h30m
---
Run `coder --help` for a list of global options.
+5 -5
View File
@@ -5,17 +5,17 @@ Manage templates
Aliases: template
Templates are written in standard Terraform and describe the infrastructure for workspaces
- Create a template for developers to create workspaces:
- Create a template for developers to create workspaces:
 $ coder templates create 
$ coder templates create
- Make changes to your template, and plan the changes:
- Make changes to your template, and plan the changes:
 $ coder templates plan my-template 
$ coder templates plan my-template
- Push an update to the template. Your developers can update their workspaces:
 $ coder templates push my-template 
$ coder templates push my-template
Subcommands
create Create a template from the current directory or as specified by
+2 -2
View File
@@ -4,9 +4,9 @@ Manage different versions of the specified template
Aliases: version
- List versions of a specific template:
- List versions of a specific template:
 $ coder templates versions list my-template 
$ coder templates versions list my-template
Subcommands
list List all the versions of the specified template
+6 -6
View File
@@ -5,17 +5,17 @@ Manage personal access tokens
Aliases: token
Tokens are used to authenticate automated clients to Coder.
- Create a token for automation:
- Create a token for automation:
 $ coder tokens create 
$ coder tokens create
- List your tokens:
- List your tokens:
 $ coder tokens ls 
$ coder tokens ls
- Remove a token by ID:
- Remove a token by ID:
 $ coder tokens rm WuoWs4ZsMX 
$ coder tokens rm WuoWs4ZsMX
Subcommands
create Create a token
+1 -1
View File
@@ -5,7 +5,7 @@ platform
Aliases: active
 $ coder users activate example_user 
$ coder users activate example_user
Options
-c, --column string-array (default: username,email,created_at,status)
+1 -1
View File
@@ -2,7 +2,7 @@ Usage: coder users show [flags] <username|user_id|'me'>
Show a single user. Use 'me' to indicate the currently authenticated user.
 $ coder users show me 
$ coder users show me
Options
-o, --output string (default: table)
+1 -1
View File
@@ -5,7 +5,7 @@ platform
Aliases: rm, delete
 $ coder users suspend example_user 
$ coder users suspend example_user
Options
-c, --column string-array (default: username,email,created_at,status)