From c12a205ab8e195541acfe0cb654b4888e16ea05c Mon Sep 17 00:00:00 2001 From: Josh Spicer Date: Fri, 3 Jun 2022 10:46:25 -0400 Subject: Pass options via environment variables (#39) * up to docker-in-docker converted * first pass at the rest of the features (and bash linting and updated CLI * move shell linter to own file * rename feature.json -> devcontainer-feature.json * continue on error * continue on error in right spot * formatting * fix AZ_VERSION * update python * restore variable name * update linter actions, fix dind/dfd/desktop scripts, add test-scenaerios * add tree because I like tree * glob for shell linter * fix test-scenarios * shell linter * more shell helper --- src/desktop-lite/devcontainer-feature.json | 57 ++++++++++++++++++++++++++++++ src/desktop-lite/feature.json | 39 -------------------- src/desktop-lite/install.sh | 18 +++++----- 3 files changed, 66 insertions(+), 48 deletions(-) create mode 100644 src/desktop-lite/devcontainer-feature.json delete mode 100644 src/desktop-lite/feature.json (limited to 'src/desktop-lite') diff --git a/src/desktop-lite/devcontainer-feature.json b/src/desktop-lite/devcontainer-feature.json new file mode 100644 index 0000000..fa7649c --- /dev/null +++ b/src/desktop-lite/devcontainer-feature.json @@ -0,0 +1,57 @@ +{ + "id": "desktop-lite", + "name": "Light-weight desktop (Fluxbox)", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest" + ], + "default": "latest", + "description": "Currently Unused!" + }, + "novnc_version": { + "type": "string", + "proposals": [ + "1.2.0" + ], + "default": "1.2.0", + "description": "NoVnc Version" + }, + "vnc_password": { + "type": "string", + "proposals": [ + "vscode", + "codespaces", + "password" + ], + "default": "vscode", + "description": "Enter a password for desktop connections" + }, + "novnc_port": { + "type": "string", + "proposals": [ + "6080" + ], + "default": "6080", + "description": "Enter a port for the VNC web client" + }, + "vnc_port": { + "type": "string", + "proposals": [ + "5901" + ], + "default": "5901", + "description": "Enter a port for the desktop VNC server" + } + }, + "init": true, + "entrypoint": "/usr/local/share/desktop-init.sh", + "containerEnv": { + "DISPLAY": ":1" + }, + "install": { + "app": "", + "file": "install.sh" + } +} \ No newline at end of file diff --git a/src/desktop-lite/feature.json b/src/desktop-lite/feature.json deleted file mode 100644 index 4ad8b8d..0000000 --- a/src/desktop-lite/feature.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "id": "desktop-lite", - "name": "Light-weight desktop (Fluxbox)", - "options": { - "version": { - "type": "string", - "enum": ["latest"], - "default": "latest", - "description": "Currently unused." - }, - "password": { - "type": "string", - "proposals": ["vscode","codespaces","password"], - "default": "vscode", - "description": "Enter a password for desktop connections" - }, - "webPort": { - "type": "string", - "proposals": ["6080"], - "default": "6080", - "description": "Enter a port for the desktop web client" - }, - "vncPort": { - "type": "string", - "proposals": ["5901"], - "default": "5901", - "description": "Enter a port for the desktop VNC server" - } - }, - "init": true, - "entrypoint": "/usr/local/share/desktop-init.sh", - "containerEnv": { - "DISPLAY": ":1" - }, - "install": { - "app": "", - "file": "install.sh" - } -} \ No newline at end of file diff --git a/src/desktop-lite/install.sh b/src/desktop-lite/install.sh index ac149c4..e9f74f1 100644 --- a/src/desktop-lite/install.sh +++ b/src/desktop-lite/install.sh @@ -6,16 +6,16 @@ # # Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/desktop-lite.md # Maintainer: The VS Code and Codespaces Teams -# -# Syntax: ./desktop-lite-debian.sh [non-root user] [Desktop password] [Install web client flag] [VNC port] [Web Port] -USERNAME=${1:-"automatic"} -VNC_PASSWORD=${2:-"vscode"} -INSTALL_NOVNC=${3:-"true"} -VNC_PORT="${4:-5901}" -NOVNC_PORT="${5:-6080}" +NOVNC_VERSION=${NOVNC_VERSION:-"1.2.0"} # TODO: Add in a 'latest' auto-detect and swap name to 'version' +VNC_PASSWORD=${VNC_PASSWORD:-"vscode"} +NOVNC_PORT="${NOVNC_PORT:-6080}" +VNC_PORT="${VNC_PORT:-5901}" + +INSTALL_NOVNC=${INSTALL_NOVNC:-"true"} +USERNAME=${USERNAME:-"automatic"} + -NOVNC_VERSION=1.2.0 WEBSOCKETIFY_VERSION=0.10.0 package_list=" @@ -72,7 +72,7 @@ fi if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then USERNAME="" POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)") - for CURRENT_USER in ${POSSIBLE_USERS[@]}; do + for CURRENT_USER in "${POSSIBLE_USERS[@]}"; do if id -u ${CURRENT_USER} > /dev/null 2>&1; then USERNAME=${CURRENT_USER} break -- cgit v1.2.3