From 8e0b4ef21b66905d637c044b8d81bff9ab5e6914 Mon Sep 17 00:00:00 2001 From: Caleb Brose <5447118+cmbrose@users.noreply.github.com> Date: Mon, 12 Dec 2022 19:44:59 +0000 Subject: [PATCH 1/3] Use -R for --repo shorthand and deprecate -r --- pkg/cmd/codespace/common.go | 13 +++++++++++++ pkg/cmd/codespace/create.go | 6 +++++- pkg/cmd/codespace/delete.go | 6 +++++- pkg/cmd/codespace/list.go | 6 +++++- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/pkg/cmd/codespace/common.go b/pkg/cmd/codespace/common.go index ba0e8a9f6..5ec5bf18f 100644 --- a/pkg/cmd/codespace/common.go +++ b/pkg/cmd/codespace/common.go @@ -284,3 +284,16 @@ func (c codespace) hasUnsavedChanges() bool { func (c codespace) running() bool { return c.State == api.CodespaceStateAvailable } + +// addDeprecatedRepoShorthand adds a -r parameter (deprecated shorthand for --repo) +// which instructs the user to use -R instead. +func addDeprecatedRepoShorthand(cmd *cobra.Command, target *string) error { + cmd.Flags().StringVarP(target, "repo-deprecated", "r", "", "(Deprecated) Shorthand for --repo") + cmd.PersistentFlags().MarkHidden("repo-deprecated") + + if err := cmd.Flags().MarkShorthandDeprecated("repo-deprecated", "use `-R` instead"); err != nil { + return fmt.Errorf("error marking `-r` shorthand as deprecated: %w", err) + } + + return nil +} diff --git a/pkg/cmd/codespace/create.go b/pkg/cmd/codespace/create.go index eceb68efb..4ce140046 100644 --- a/pkg/cmd/codespace/create.go +++ b/pkg/cmd/codespace/create.go @@ -81,7 +81,11 @@ func newCreateCmd(app *App) *cobra.Command { }, } - createCmd.Flags().StringVarP(&opts.repo, "repo", "r", "", "repository name with owner: user/repo") + createCmd.Flags().StringVarP(&opts.repo, "repo", "R", "", "repository name with owner: user/repo") + if err := addDeprecatedRepoShorthand(createCmd, &opts.repo); err != nil { + fmt.Fprint(app.io.ErrOut, "%v\n", err) + } + createCmd.Flags().StringVarP(&opts.branch, "branch", "b", "", "repository branch") createCmd.Flags().StringVarP(&opts.location, "location", "l", "", "location: {EastUs|SouthEastAsia|WestEurope|WestUs2} (determined automatically if not provided)") createCmd.Flags().StringVarP(&opts.machine, "machine", "m", "", "hardware specifications for the VM") diff --git a/pkg/cmd/codespace/delete.go b/pkg/cmd/codespace/delete.go index 7167f84c0..8502f0db0 100644 --- a/pkg/cmd/codespace/delete.go +++ b/pkg/cmd/codespace/delete.go @@ -66,7 +66,11 @@ func newDeleteCmd(app *App) *cobra.Command { deleteCmd.Flags().StringVarP(&opts.codespaceName, "codespace", "c", "", "Name of the codespace") deleteCmd.Flags().BoolVar(&opts.deleteAll, "all", false, "Delete all codespaces") - deleteCmd.Flags().StringVarP(&opts.repoFilter, "repo", "r", "", "Delete codespaces for a `repository`") + deleteCmd.Flags().StringVarP(&opts.repoFilter, "repo", "R", "", "Delete codespaces for a `repository`") + if err := addDeprecatedRepoShorthand(deleteCmd, &opts.repoFilter); err != nil { + fmt.Fprint(app.io.ErrOut, "%v\n", err) + } + deleteCmd.Flags().BoolVarP(&opts.skipConfirm, "force", "f", false, "Skip confirmation for codespaces that contain unsaved changes") deleteCmd.Flags().Uint16Var(&opts.keepDays, "days", 0, "Delete codespaces older than `N` days") deleteCmd.Flags().StringVarP(&opts.orgName, "org", "o", "", "The `login` handle of the organization (admin-only)") diff --git a/pkg/cmd/codespace/list.go b/pkg/cmd/codespace/list.go index 71a869d77..69694bdcb 100644 --- a/pkg/cmd/codespace/list.go +++ b/pkg/cmd/codespace/list.go @@ -44,7 +44,11 @@ func newListCmd(app *App) *cobra.Command { } listCmd.Flags().IntVarP(&opts.limit, "limit", "L", 30, "Maximum number of codespaces to list") - listCmd.Flags().StringVarP(&opts.repo, "repo", "r", "", "Repository name with owner: user/repo") + listCmd.Flags().StringVarP(&opts.repo, "repo", "R", "", "Repository name with owner: user/repo") + if err := addDeprecatedRepoShorthand(listCmd, &opts.repo); err != nil { + fmt.Fprint(app.io.ErrOut, "%v\n", err) + } + listCmd.Flags().StringVarP(&opts.orgName, "org", "o", "", "The `login` handle of the organization to list codespaces for (admin-only)") listCmd.Flags().StringVarP(&opts.userName, "user", "u", "", "The `username` to list codespaces for (used with --org)") cmdutil.AddJSONFlags(listCmd, &exporter, api.CodespaceFields) From 57c53e6268c39b052e75dda417ab5d2d26ee261c Mon Sep 17 00:00:00 2001 From: Caleb Brose <5447118+cmbrose@users.noreply.github.com> Date: Mon, 12 Dec 2022 21:21:23 +0000 Subject: [PATCH 2/3] linter --- pkg/cmd/codespace/common.go | 4 +++- pkg/cmd/codespace/create.go | 2 +- pkg/cmd/codespace/delete.go | 2 +- pkg/cmd/codespace/list.go | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/cmd/codespace/common.go b/pkg/cmd/codespace/common.go index 5ec5bf18f..bd0ad816d 100644 --- a/pkg/cmd/codespace/common.go +++ b/pkg/cmd/codespace/common.go @@ -289,7 +289,9 @@ func (c codespace) running() bool { // which instructs the user to use -R instead. func addDeprecatedRepoShorthand(cmd *cobra.Command, target *string) error { cmd.Flags().StringVarP(target, "repo-deprecated", "r", "", "(Deprecated) Shorthand for --repo") - cmd.PersistentFlags().MarkHidden("repo-deprecated") + if err := cmd.PersistentFlags().MarkHidden("repo-deprecated"); err != nil { + return fmt.Errorf("error marking `-r` shorthand as hidden: %w", err) + } if err := cmd.Flags().MarkShorthandDeprecated("repo-deprecated", "use `-R` instead"); err != nil { return fmt.Errorf("error marking `-r` shorthand as deprecated: %w", err) diff --git a/pkg/cmd/codespace/create.go b/pkg/cmd/codespace/create.go index 4ce140046..ac886a661 100644 --- a/pkg/cmd/codespace/create.go +++ b/pkg/cmd/codespace/create.go @@ -83,7 +83,7 @@ func newCreateCmd(app *App) *cobra.Command { createCmd.Flags().StringVarP(&opts.repo, "repo", "R", "", "repository name with owner: user/repo") if err := addDeprecatedRepoShorthand(createCmd, &opts.repo); err != nil { - fmt.Fprint(app.io.ErrOut, "%v\n", err) + fmt.Fprintf(app.io.ErrOut, "%v\n", err) } createCmd.Flags().StringVarP(&opts.branch, "branch", "b", "", "repository branch") diff --git a/pkg/cmd/codespace/delete.go b/pkg/cmd/codespace/delete.go index 8502f0db0..d0dc338cb 100644 --- a/pkg/cmd/codespace/delete.go +++ b/pkg/cmd/codespace/delete.go @@ -68,7 +68,7 @@ func newDeleteCmd(app *App) *cobra.Command { deleteCmd.Flags().BoolVar(&opts.deleteAll, "all", false, "Delete all codespaces") deleteCmd.Flags().StringVarP(&opts.repoFilter, "repo", "R", "", "Delete codespaces for a `repository`") if err := addDeprecatedRepoShorthand(deleteCmd, &opts.repoFilter); err != nil { - fmt.Fprint(app.io.ErrOut, "%v\n", err) + fmt.Fprintf(app.io.ErrOut, "%v\n", err) } deleteCmd.Flags().BoolVarP(&opts.skipConfirm, "force", "f", false, "Skip confirmation for codespaces that contain unsaved changes") diff --git a/pkg/cmd/codespace/list.go b/pkg/cmd/codespace/list.go index 69694bdcb..00b0dc582 100644 --- a/pkg/cmd/codespace/list.go +++ b/pkg/cmd/codespace/list.go @@ -46,7 +46,7 @@ func newListCmd(app *App) *cobra.Command { listCmd.Flags().IntVarP(&opts.limit, "limit", "L", 30, "Maximum number of codespaces to list") listCmd.Flags().StringVarP(&opts.repo, "repo", "R", "", "Repository name with owner: user/repo") if err := addDeprecatedRepoShorthand(listCmd, &opts.repo); err != nil { - fmt.Fprint(app.io.ErrOut, "%v\n", err) + fmt.Fprintf(app.io.ErrOut, "%v\n", err) } listCmd.Flags().StringVarP(&opts.orgName, "org", "o", "", "The `login` handle of the organization to list codespaces for (admin-only)") From 56006eefa60ee8df4ad60ae47dd88252a24b34d7 Mon Sep 17 00:00:00 2001 From: Caleb Brose <5447118+cmbrose@users.noreply.github.com> Date: Tue, 13 Dec 2022 01:20:49 +0000 Subject: [PATCH 3/3] Flags instead of PersistentFlag --- pkg/cmd/codespace/common.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/cmd/codespace/common.go b/pkg/cmd/codespace/common.go index bd0ad816d..cdaad668f 100644 --- a/pkg/cmd/codespace/common.go +++ b/pkg/cmd/codespace/common.go @@ -289,7 +289,8 @@ func (c codespace) running() bool { // which instructs the user to use -R instead. func addDeprecatedRepoShorthand(cmd *cobra.Command, target *string) error { cmd.Flags().StringVarP(target, "repo-deprecated", "r", "", "(Deprecated) Shorthand for --repo") - if err := cmd.PersistentFlags().MarkHidden("repo-deprecated"); err != nil { + + if err := cmd.Flags().MarkHidden("repo-deprecated"); err != nil { return fmt.Errorf("error marking `-r` shorthand as hidden: %w", err) }