Skip to content

Commit 3514ca3

Browse files
chore: skip completion install prompts in non-interactive shells (#14391)
1 parent e8c59a1 commit 3514ca3

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

cli/completion.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package cli
33
import (
44
"fmt"
55

6+
"golang.org/x/xerrors"
7+
68
"github.com/coder/coder/v2/cli/cliui"
79
"github.com/coder/serpent"
810
"github.com/coder/serpent/completion"
@@ -45,7 +47,10 @@ func (*RootCmd) completion() *serpent.Command {
4547
if err == nil {
4648
return installCompletion(inv, shell)
4749
}
48-
// Silently continue to the shell selection if detecting failed.
50+
if !isTTYOut(inv) {
51+
return xerrors.New("could not detect the current shell, please specify one with --shell or run interactively")
52+
}
53+
// Silently continue to the shell selection if detecting failed in interactive mode
4954
choice, err := cliui.Select(inv, cliui.SelectOptions{
5055
Message: "Select a shell to install completion for:",
5156
Options: shellOptions.Choices,
@@ -71,6 +76,9 @@ func installCompletion(inv *serpent.Invocation, shell completion.Shell) error {
7176
cliui.Error(inv.Stderr, fmt.Sprintf("Failed to determine completion path %v", err))
7277
return shell.WriteCompletion(inv.Stdout)
7378
}
79+
if !isTTYOut(inv) {
80+
return shell.WriteCompletion(inv.Stdout)
81+
}
7482
choice, err := cliui.Select(inv, cliui.SelectOptions{
7583
Options: []string{
7684
"Confirm",

flake.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
name = "coder-${osArch}";
118118
# Updated with ./scripts/update-flake.sh`.
119119
# This should be updated whenever go.mod changes!
120-
vendorHash = "sha256-I2YMiYXq8XrJd6jw8JZnOL5wugPTLsip9JGELEy5Uao=";
120+
vendorHash = "sha256-lkjb9a40kzi7c3JbVb+5wT1JYTaobLl4lIq11FIvxuQ=";
121121
proxyVendor = true;
122122
src = ./.;
123123
nativeBuildInputs = with pkgs; [ getopt openssl zstd ];

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ require go.uber.org/mock v0.4.0
197197

198198
require (
199199
github.com/cespare/xxhash v1.1.0
200-
github.com/coder/serpent v0.7.1-0.20240815055535-d46fb20fa158
200+
github.com/coder/serpent v0.7.1-0.20240822034013-1b2301f8c920
201201
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21
202202
github.com/emersion/go-smtp v0.21.2
203203
github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47
@@ -283,7 +283,7 @@ require (
283283
github.com/docker/docker v27.1.1+incompatible // indirect
284284
github.com/docker/go-connections v0.5.0 // indirect
285285
github.com/docker/go-units v0.5.0 // indirect
286-
github.com/dustin/go-humanize v1.0.1 // indirect
286+
github.com/dustin/go-humanize v1.0.1
287287
github.com/ebitengine/purego v0.6.0-alpha.5 // indirect
288288
github.com/elastic/go-windows v1.0.0 // indirect
289289
github.com/felixge/httpsnoop v1.0.4 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ github.com/coder/quartz v0.1.0 h1:cLL+0g5l7xTf6ordRnUMMiZtRE8Sq5LxpghS63vEXrQ=
222222
github.com/coder/quartz v0.1.0/go.mod h1:vsiCc+AHViMKH2CQpGIpFgdHIEQsxwm8yCscqKmzbRA=
223223
github.com/coder/retry v1.5.1 h1:iWu8YnD8YqHs3XwqrqsjoBTAVqT9ml6z9ViJ2wlMiqc=
224224
github.com/coder/retry v1.5.1/go.mod h1:blHMk9vs6LkoRT9ZHyuZo360cufXEhrxqvEzeMtRGoY=
225-
github.com/coder/serpent v0.7.1-0.20240815055535-d46fb20fa158 h1:Z+QHBAsvToUfV0UMDnUy8oqdPyrScn5WKV4mx4yNcXY=
226-
github.com/coder/serpent v0.7.1-0.20240815055535-d46fb20fa158/go.mod h1:cZFW6/fP+kE9nd/oRkEHJpG6sXCtQ+AX7WMMEHv0Y3Q=
225+
github.com/coder/serpent v0.7.1-0.20240822034013-1b2301f8c920 h1:RXtavW+kslsKgX2xlroVPqijgTaGHZkn9kvPEP4ALOU=
226+
github.com/coder/serpent v0.7.1-0.20240822034013-1b2301f8c920/go.mod h1:cZFW6/fP+kE9nd/oRkEHJpG6sXCtQ+AX7WMMEHv0Y3Q=
227227
github.com/coder/ssh v0.0.0-20231128192721-70855dedb788 h1:YoUSJ19E8AtuUFVYBpXuOD6a/zVP3rcxezNsoDseTUw=
228228
github.com/coder/ssh v0.0.0-20231128192721-70855dedb788/go.mod h1:aGQbuCLyhRLMzZF067xc84Lh7JDs1FKwCmF1Crl9dxQ=
229229
github.com/coder/tailscale v1.1.1-0.20240702054557-aa558fbe5374 h1:a5Eg7D5e2oAc0tN56ee4yxtiTo76ztpRlk6geljaZp8=

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy