diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..144199a --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +.PHONY: test +test: + devcontainer features test diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index e0afe4a..b12799c 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -23,7 +23,11 @@ "extensions": { "type": "string", "default": "" - } + }, + "workspace": { + "type": "string", + "default": "" + } }, "entrypoint": "/usr/local/bin/code-server-entrypoint", "dependsOn": { diff --git a/src/code-server/install.sh b/src/code-server/install.sh index 04be75d..3f9ff0b 100644 --- a/src/code-server/install.sh +++ b/src/code-server/install.sh @@ -3,7 +3,7 @@ set -e CODE_SERVER_INSTALL_ARGS="" -if [ -n "$VERSION" ]; then +if [[ -n $VERSION ]]; then CODE_SERVER_INSTALL_ARGS="$CODE_SERVER_INSTALL_ARGS --version=\"$VERSION\"" fi @@ -17,12 +17,18 @@ do code-server --install-extension "$extension" done +CODE_SERVER_WORKSPACE="$_REMOTE_USER_HOME" + +if [[ -n $WORKSPACE ]]; then + CODE_SERVER_WORKSPACE="$WORKSPACE" +fi + cat > /usr/local/bin/code-server-entrypoint \ << EOF #!/usr/bin/env bash set -e -su $_REMOTE_USER -c 'code-server --bind-addr "$HOST:$PORT" \$ARGS' +su $_REMOTE_USER -c 'code-server --bind-addr "$HOST:$PORT" "$CODE_SERVER_WORKSPACE"' EOF chmod +x /usr/local/bin/code-server-entrypoint diff --git a/test/code-server/code-server-workspace.sh b/test/code-server/code-server-workspace.sh new file mode 100644 index 0000000..b57e334 --- /dev/null +++ b/test/code-server/code-server-workspace.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +# Optional: Import test library bundled with the devcontainer CLI +source dev-container-features-test-lib + +# Feature-specific tests +check "code-server version" code-server --version +check "code-server running" pgrep -f 'code-server/lib/node.*/code-server' +check "code-server listening" lsof -i "@127.0.0.1:8080" + +check "code-server workspace" grep $'\'code-server.*"/home"\'' < /usr/local/bin/code-server-entrypoint + +# Report results +reportResults diff --git a/test/code-server/scenarios.json b/test/code-server/scenarios.json index f9f3cff..3a34c43 100644 --- a/test/code-server/scenarios.json +++ b/test/code-server/scenarios.json @@ -30,5 +30,13 @@ "version": "4.98.0" } } + }, + "code-server-workspace": { + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "features": { + "code-server": { + "workspace": "/home" + } + } } }