Skip to content

Commit 2eb7807

Browse files
fix: broken implementation and tests
Unfortunately it appears I didn't manually test well enough. I've now fixed how the arguments are forwarded to the `code-server` CLI. I've also fixed any tests that broke due to the change.
1 parent a926b94 commit 2eb7807

9 files changed

+38
-43
lines changed

Diff for: src/code-server/install.sh

+20-23
Original file line numberDiff line numberDiff line change
@@ -23,70 +23,67 @@ if [[ -n $WORKSPACE ]]; then
2323
CODE_SERVER_WORKSPACE="$WORKSPACE"
2424
fi
2525

26-
DISABLE_FLAGS=()
26+
FLAGS=()
27+
FLAGS+=(--auth "$AUTH")
28+
FLAGS+=(--bind-addr "$HOST:$PORT")
2729

2830
if [[ "$DISABLEFILEDOWNLOADS" == "true" ]]; then
29-
DISABLE_FLAGS+=(--disable-file-downloads)
31+
FLAGS+=(--disable-file-downloads)
3032
fi
3133

3234
if [[ "$DISABLEFILEUPLOADS" == "true" ]]; then
33-
DISABLE_FLAGS+=(--disable-file-uploads)
35+
FLAGS+=(--disable-file-uploads)
3436
fi
3537

3638
if [[ "$DISABLEGETTINGSTARTEDOVERRIDE" == "true" ]]; then
37-
DISABLE_FLAGS+=(--disable-getting-started-override)
39+
FLAGS+=(--disable-getting-started-override)
3840
fi
3941

4042
if [[ "$DISABLEPROXY" == "true" ]]; then
41-
DISABLE_FLAGS+=(--disable-proxy)
43+
FLAGS+=(--disable-proxy)
4244
fi
4345

4446
if [[ "$DISABLETELEMETRY" == "true" ]]; then
45-
DISABLE_FLAGS+=(--disable-telemetry)
47+
FLAGS+=(--disable-telemetry)
4648
fi
4749

4850
if [[ "$DISABLEUPDATECHECK" == "true" ]]; then
49-
DISABLE_FLAGS+=(--disable-update-check)
51+
FLAGS+=(--disable-update-check)
5052
fi
5153

5254
if [[ "$DISABLEWORKSPACETRUST" == "true" ]]; then
53-
DISABLE_FLAGS+=(--disable-workspace-trust)
55+
FLAGS+=(--disable-workspace-trust)
5456
fi
5557

56-
CERT_FLAGS=()
57-
5858
if [[ -n "$CERT" ]]; then
59-
CERT_FLAGS+=(--cert "$CERT")
59+
FLAGS+=(--cert "$CERT")
6060
fi
6161

6262
if [[ -n "$CERTHOST" ]]; then
63-
CERT_FLAGS+=(--cert-host "$CERTHOST")
63+
FLAGS+=(--cert-host "$CERTHOST")
6464
fi
6565

6666
if [[ -n "$CERTKEY" ]]; then
67-
CERT_FLAGS+=(--cert-key "$CERTKEY")
67+
FLAGS+=(--cert-key "$CERTKEY")
6868
fi
6969

70-
SOCKET_FLAGS=()
71-
7270
if [[ -n "$SOCKET" ]]; then
73-
SOCKET_FLAGS+=(--socket "$SOCKET")
71+
FLAGS+=(--socket "$SOCKET")
7472
fi
7573

7674
if [[ -n "$SOCKETMODE" ]]; then
77-
SOCKET_FLAGS+=(--socket-mode "$SOCKETMODE")
75+
FLAGS+=(--socket-mode "$SOCKETMODE")
7876
fi
7977

80-
cat > /usr/local/bin/code-server-entrypoint \
81-
<< EOF
78+
cat > /usr/local/bin/code-server-entrypoint <<EOF
8279
#!/usr/bin/env bash
8380
set -e
8481
85-
$(declare -p DISABLE_FLAGS)
86-
$(declare -p CERT_FLAGS)
87-
$(declare -p SOCKET_FLAGS)
82+
$(declare -p FLAGS)
83+
84+
CMD="code-server \${FLAGS[@]} \"$CODE_SERVER_WORKSPACE\""
8885
89-
su $_REMOTE_USER -c 'code-server --auth "$AUTH" --bind-addr "$HOST:$PORT" "\${DISABLE_FLAGS[@]}" "\${CERT_FLAGS[@]}" "\${SOCKET_FLAGS[@]}" "$CODE_SERVER_WORKSPACE"'
86+
su $_REMOTE_USER -c "\$CMD"
9087
EOF
9188

9289
chmod +x /usr/local/bin/code-server-entrypoint

Diff for: test/code-server/code-server-auth-none.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ check "code-server version" code-server --version
99
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
1010
check "code-server listening" lsof -i "@127.0.0.1:8080"
1111

12-
check "code-server auth" grep $'\'code-server.* --auth "none" .*\'' < /usr/local/bin/code-server-entrypoint
12+
check "code-server auth" grep '"--auth".*"none"' < /usr/local/bin/code-server-entrypoint
1313

1414
# Report results
1515
reportResults

Diff for: test/code-server/code-server-auth-password.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ check "code-server version" code-server --version
99
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
1010
check "code-server listening" lsof -i "@127.0.0.1:8080"
1111

12-
check "code-server auth" grep $'\'code-server.* --auth "password" .*\'' < /usr/local/bin/code-server-entrypoint
12+
check "code-server auth" grep '"--auth".*"password"' < /usr/local/bin/code-server-entrypoint
1313

1414
# Report results
1515
reportResults

Diff for: test/code-server/code-server-cert.sh

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ set -e
44
# Optional: Import test library bundled with the devcontainer CLI
55
source dev-container-features-test-lib
66

7-
cat /usr/local/bin/code-server-entrypoint
8-
97
# Feature-specific tests
108
check "code-server version" code-server --version
119
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
1210
check "code-server listening" lsof -i "@127.0.0.1:8080"
1311

14-
check "code-server cert" grep '"--cert".*"/path/to/cert.pem"' < /usr/local/bin/code-server-entrypoint
15-
check "code-server cert-key" grep '"--cert-key".*"/path/to/key.pem"' < /usr/local/bin/code-server-entrypoint
12+
check "code-server cert" grep '"--cert".*"/home/vscode/cert.pem"' < /usr/local/bin/code-server-entrypoint
13+
check "code-server cert-key" grep '"--cert-key".*"/home/vscode/key.pem"' < /usr/local/bin/code-server-entrypoint
1614

1715
# Report results
1816
reportResults

Diff for: test/code-server/code-server-cert/Dockerfile

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM mcr.microsoft.com/devcontainers/base:ubuntu
2+
3+
RUN su vscode -c "openssl req -x509 -newkey rsa:4096 -keyout /home/vscode/key.pem -out /home/vscode/cert.pem -sha256 -days 1 -nodes -subj \"/C=XX/ST=Texas/L=Austin/O=Coder/OU=Engineering/CN=dev.coder.com\""

Diff for: test/code-server/code-server-socket-with-mode.sh

+2-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,12 @@ set -e
44
# Optional: Import test library bundled with the devcontainer CLI
55
source dev-container-features-test-lib
66

7-
cat /usr/local/bin/code-server-entrypoint
8-
97
# Feature-specific tests
108
check "code-server version" code-server --version
119
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
12-
check "code-server listening" lsof -i "@127.0.0.1:8080"
1310

14-
check "code-server socket" grep '"--socket".*"/tmp/code-server.sock"' < /usr/local/bin/code-server-entrypoint
15-
check "code-server socket-mode" grep '"--socket-mode".*"777"' < /usr/local/bin/code-server-entrypoint
11+
check "code-server socket" test -S /tmp/code-server.sock
12+
check "code-server socket-mode" grep '0777' <<< $(stat /tmp/code-server.sock)
1613

1714
# Report results
1815
reportResults

Diff for: test/code-server/code-server-socket.sh

+3-5
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ set -e
44
# Optional: Import test library bundled with the devcontainer CLI
55
source dev-container-features-test-lib
66

7-
cat /usr/local/bin/code-server-entrypoint
8-
97
# Feature-specific tests
108
check "code-server version" code-server --version
119
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
12-
check "code-server listening" lsof -i "@127.0.0.1:8080"
1310

14-
check "code-server socket" grep '"--socket".*"/tmp/code-server.sock"' < /usr/local/bin/code-server-entrypoint
11+
check "code-server socket" test -S /tmp/code-server.sock
12+
# check "code-server socket-mode" grep '0755' <<< $(stat /tmp/code-server.sock)
1513

1614
# Report results
17-
reportResults
15+
reportResults

Diff for: test/code-server/code-server-workspace.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ check "code-server version" code-server --version
99
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
1010
check "code-server listening" lsof -i "@127.0.0.1:8080"
1111

12-
check "code-server workspace" grep $'\'code-server.*"/home"\'' < /usr/local/bin/code-server-entrypoint
12+
check "code-server workspace" grep $'/home' < /usr/local/bin/code-server-entrypoint
1313

1414
# Report results
1515
reportResults

Diff for: test/code-server/scenarios.json

+5-3
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,13 @@
126126
}
127127
},
128128
"code-server-cert": {
129-
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
129+
"build": {
130+
"dockerfile": "Dockerfile"
131+
},
130132
"features": {
131133
"code-server": {
132-
"cert": "/path/to/cert.pem",
133-
"certKey": "/path/to/key.pem"
134+
"cert": "/home/vscode/cert.pem",
135+
"certKey": "/home/vscode/key.pem"
134136
}
135137
}
136138
},

0 commit comments

Comments
 (0)