Skip to content

Commit a8c3616

Browse files
committed
feat: add autocomplete for development
1 parent 1208aba commit a8c3616

File tree

7 files changed

+214
-5
lines changed

7 files changed

+214
-5
lines changed
Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,53 @@
11
#!/bin/bash
22
set -x
33

4+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
5+
mkdir -p "$BASH_COMPLETIONS_DIR"
6+
7+
# ------------------ kind ------------------
48
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
59
chmod +x ./kind
610
mv ./kind /usr/local/bin/kind
711

12+
# Install bash completion (no dotfile edits)
13+
if command -v kind >/dev/null 2>&1; then
14+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
15+
fi
16+
17+
# ------------------ kubebuilder ------------------
818
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
919
chmod +x kubebuilder
1020
mv kubebuilder /usr/local/bin/
1121

22+
# Install bash completion (no dotfile edits)
23+
if command -v kubebuilder >/dev/null 2>&1; then
24+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
25+
fi
26+
27+
# ------------------ kubectl ------------------
1228
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
1329
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
1430
chmod +x kubectl
1531
mv kubectl /usr/local/bin/kubectl
1632

33+
# Install bash completion (no dotfile edits)
34+
if command -v kubectl >/dev/null 2>&1; then
35+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
36+
fi
37+
38+
# ------------------ docker (optional) ------------------
39+
# Only try to install docker completion if docker exists in the container
40+
if command -v docker >/dev/null 2>&1; then
41+
# some docker builds support `docker completion`
42+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
43+
fi
44+
45+
# ------------------ network for kind ------------------
1746
docker network create -d=bridge --subnet=172.19.0.0/24 kind
1847

48+
# ------------------ versions ------------------
1949
kind version
2050
kubebuilder version
2151
docker --version
2252
go version
23-
kubectl version --client
53+
kubectl version --client
Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,53 @@
11
#!/bin/bash
22
set -x
33

4+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
5+
mkdir -p "$BASH_COMPLETIONS_DIR"
6+
7+
# ------------------ kind ------------------
48
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
59
chmod +x ./kind
610
mv ./kind /usr/local/bin/kind
711

12+
# Install bash completion (no dotfile edits)
13+
if command -v kind >/dev/null 2>&1; then
14+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
15+
fi
16+
17+
# ------------------ kubebuilder ------------------
818
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
919
chmod +x kubebuilder
1020
mv kubebuilder /usr/local/bin/
1121

22+
# Install bash completion (no dotfile edits)
23+
if command -v kubebuilder >/dev/null 2>&1; then
24+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
25+
fi
26+
27+
# ------------------ kubectl ------------------
1228
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
1329
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
1430
chmod +x kubectl
1531
mv kubectl /usr/local/bin/kubectl
1632

33+
# Install bash completion (no dotfile edits)
34+
if command -v kubectl >/dev/null 2>&1; then
35+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
36+
fi
37+
38+
# ------------------ docker (optional) ------------------
39+
# Only try to install docker completion if docker exists in the container
40+
if command -v docker >/dev/null 2>&1; then
41+
# some docker builds support `docker completion`
42+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
43+
fi
44+
45+
# ------------------ network for kind ------------------
1746
docker network create -d=bridge --subnet=172.19.0.0/24 kind
1847

48+
# ------------------ versions ------------------
1949
kind version
2050
kubebuilder version
2151
docker --version
2252
go version
23-
kubectl version --client
53+
kubectl version --client
Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,53 @@
11
#!/bin/bash
22
set -x
33

4+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
5+
mkdir -p "$BASH_COMPLETIONS_DIR"
6+
7+
# ------------------ kind ------------------
48
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
59
chmod +x ./kind
610
mv ./kind /usr/local/bin/kind
711

12+
# Install bash completion (no dotfile edits)
13+
if command -v kind >/dev/null 2>&1; then
14+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
15+
fi
16+
17+
# ------------------ kubebuilder ------------------
818
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
919
chmod +x kubebuilder
1020
mv kubebuilder /usr/local/bin/
1121

22+
# Install bash completion (no dotfile edits)
23+
if command -v kubebuilder >/dev/null 2>&1; then
24+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
25+
fi
26+
27+
# ------------------ kubectl ------------------
1228
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
1329
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
1430
chmod +x kubectl
1531
mv kubectl /usr/local/bin/kubectl
1632

33+
# Install bash completion (no dotfile edits)
34+
if command -v kubectl >/dev/null 2>&1; then
35+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
36+
fi
37+
38+
# ------------------ docker (optional) ------------------
39+
# Only try to install docker completion if docker exists in the container
40+
if command -v docker >/dev/null 2>&1; then
41+
# some docker builds support `docker completion`
42+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
43+
fi
44+
45+
# ------------------ network for kind ------------------
1746
docker network create -d=bridge --subnet=172.19.0.0/24 kind
1847

48+
# ------------------ versions ------------------
1949
kind version
2050
kubebuilder version
2151
docker --version
2252
go version
23-
kubectl version --client
53+
kubectl version --client

pkg/plugins/golang/v4/scaffolds/internal/templates/devcontainer.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,50 @@ const devContainerTemplate = `{
5050
const postInstallScript = `#!/bin/bash
5151
set -x
5252
53+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
54+
mkdir -p "$BASH_COMPLETIONS_DIR"
55+
56+
# ------------------ kind ------------------
5357
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
5458
chmod +x ./kind
5559
mv ./kind /usr/local/bin/kind
5660
61+
# Install bash completion (no dotfile edits)
62+
if command -v kind >/dev/null 2>&1; then
63+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
64+
fi
65+
66+
# ------------------ kubebuilder ------------------
5767
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
5868
chmod +x kubebuilder
5969
mv kubebuilder /usr/local/bin/
6070
71+
# Install bash completion (no dotfile edits)
72+
if command -v kubebuilder >/dev/null 2>&1; then
73+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
74+
fi
75+
76+
# ------------------ kubectl ------------------
6177
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
6278
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
6379
chmod +x kubectl
6480
mv kubectl /usr/local/bin/kubectl
6581
82+
# Install bash completion (no dotfile edits)
83+
if command -v kubectl >/dev/null 2>&1; then
84+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
85+
fi
86+
87+
# ------------------ docker (optional) ------------------
88+
# Only try to install docker completion if docker exists in the container
89+
if command -v docker >/dev/null 2>&1; then
90+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
91+
fi
92+
93+
# ------------------ network for kind ------------------
6694
docker network create -d=bridge --subnet=172.19.0.0/24 kind
6795
96+
# ------------------ versions ------------------
6897
kind version
6998
kubebuilder version
7099
docker --version
Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,53 @@
11
#!/bin/bash
22
set -x
33

4+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
5+
mkdir -p "$BASH_COMPLETIONS_DIR"
6+
7+
# ------------------ kind ------------------
48
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
59
chmod +x ./kind
610
mv ./kind /usr/local/bin/kind
711

12+
# Install bash completion (no dotfile edits)
13+
if command -v kind >/dev/null 2>&1; then
14+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
15+
fi
16+
17+
# ------------------ kubebuilder ------------------
818
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
919
chmod +x kubebuilder
1020
mv kubebuilder /usr/local/bin/
1121

22+
# Install bash completion (no dotfile edits)
23+
if command -v kubebuilder >/dev/null 2>&1; then
24+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
25+
fi
26+
27+
# ------------------ kubectl ------------------
1228
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
1329
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
1430
chmod +x kubectl
1531
mv kubectl /usr/local/bin/kubectl
1632

33+
# Install bash completion (no dotfile edits)
34+
if command -v kubectl >/dev/null 2>&1; then
35+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
36+
fi
37+
38+
# ------------------ docker (optional) ------------------
39+
# Only try to install docker completion if docker exists in the container
40+
if command -v docker >/dev/null 2>&1; then
41+
# some docker builds support `docker completion`
42+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
43+
fi
44+
45+
# ------------------ network for kind ------------------
1746
docker network create -d=bridge --subnet=172.19.0.0/24 kind
1847

48+
# ------------------ versions ------------------
1949
kind version
2050
kubebuilder version
2151
docker --version
2252
go version
23-
kubectl version --client
53+
kubectl version --client

testdata/project-v4-with-plugins/.devcontainer/post-install.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,51 @@
11
#!/bin/bash
22
set -x
33

4+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
5+
mkdir -p "$BASH_COMPLETIONS_DIR"
6+
7+
# ------------------ kind ------------------
48
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
59
chmod +x ./kind
610
mv ./kind /usr/local/bin/kind
711

12+
# Install bash completion (no dotfile edits)
13+
if command -v kind >/dev/null 2>&1; then
14+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
15+
fi
16+
17+
# ------------------ kubebuilder ------------------
818
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
919
chmod +x kubebuilder
1020
mv kubebuilder /usr/local/bin/
1121

22+
# Install bash completion (no dotfile edits)
23+
if command -v kubebuilder >/dev/null 2>&1; then
24+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
25+
fi
26+
27+
# ------------------ kubectl ------------------
1228
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
1329
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
1430
chmod +x kubectl
1531
mv kubectl /usr/local/bin/kubectl
1632

33+
# Install bash completion (no dotfile edits)
34+
if command -v kubectl >/dev/null 2>&1; then
35+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
36+
fi
37+
38+
# ------------------ docker (optional) ------------------
39+
# Only try to install docker completion if docker exists in the container
40+
if command -v docker >/dev/null 2>&1; then
41+
# some docker builds support `docker completion`
42+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
43+
fi
44+
45+
# ------------------ network for kind ------------------
1746
docker network create -d=bridge --subnet=172.19.0.0/24 kind
1847

48+
# ------------------ versions ------------------
1949
kind version
2050
kubebuilder version
2151
docker --version
Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,53 @@
11
#!/bin/bash
22
set -x
33

4+
BASH_COMPLETIONS_DIR="/etc/bash_completion.d"
5+
mkdir -p "$BASH_COMPLETIONS_DIR"
6+
7+
# ------------------ kind ------------------
48
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(go env GOARCH)
59
chmod +x ./kind
610
mv ./kind /usr/local/bin/kind
711

12+
# Install bash completion (no dotfile edits)
13+
if command -v kind >/dev/null 2>&1; then
14+
kind completion bash > "${BASH_COMPLETIONS_DIR}/kind" || true
15+
fi
16+
17+
# ------------------ kubebuilder ------------------
818
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/linux/$(go env GOARCH)
919
chmod +x kubebuilder
1020
mv kubebuilder /usr/local/bin/
1121

22+
# Install bash completion (no dotfile edits)
23+
if command -v kubebuilder >/dev/null 2>&1; then
24+
kubebuilder completion bash > "${BASH_COMPLETIONS_DIR}/kubebuilder" || true
25+
fi
26+
27+
# ------------------ kubectl ------------------
1228
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
1329
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/$(go env GOARCH)/kubectl"
1430
chmod +x kubectl
1531
mv kubectl /usr/local/bin/kubectl
1632

33+
# Install bash completion (no dotfile edits)
34+
if command -v kubectl >/dev/null 2>&1; then
35+
kubectl completion bash > "${BASH_COMPLETIONS_DIR}/kubectl" || true
36+
fi
37+
38+
# ------------------ docker (optional) ------------------
39+
# Only try to install docker completion if docker exists in the container
40+
if command -v docker >/dev/null 2>&1; then
41+
# some docker builds support `docker completion`
42+
docker completion bash > "${BASH_COMPLETIONS_DIR}/docker" || true
43+
fi
44+
45+
# ------------------ network for kind ------------------
1746
docker network create -d=bridge --subnet=172.19.0.0/24 kind
1847

48+
# ------------------ versions ------------------
1949
kind version
2050
kubebuilder version
2151
docker --version
2252
go version
23-
kubectl version --client
53+
kubectl version --client

0 commit comments

Comments
 (0)