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/rust/devcontainer-feature.json | 57 ++++++++++++++++++++++++++++++++++++++ src/rust/feature.json | 57 -------------------------------------- src/rust/install.sh | 19 ++++++------- 3 files changed, 66 insertions(+), 67 deletions(-) create mode 100644 src/rust/devcontainer-feature.json delete mode 100644 src/rust/feature.json (limited to 'src/rust') diff --git a/src/rust/devcontainer-feature.json b/src/rust/devcontainer-feature.json new file mode 100644 index 0000000..147969f --- /dev/null +++ b/src/rust/devcontainer-feature.json @@ -0,0 +1,57 @@ +{ + "id": "rust", + "name": "Rust", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest", + "none", + "1.55", + "1.54", + "1.53" + ], + "default": "latest", + "description": "Select or enter a version of Rust to install." + }, + "profile": { + "type": "string", + "proposals": [ + "minimal", + "default", + "complete" + ], + "default": "minimal", + "description": "Select a rustup install profile." + } + }, + "extensions": [ + "vadimcn.vscode-lldb", + "mutantdino.resourcemonitor", + "rust-lang.rust-analyzer", + "tamasfe.even-better-toml", + "serayuzgur.crates" + ], + "containerEnv": { + "CARGO_HOME": "/usr/local/cargo", + "RUSTUP_HOME": "/usr/local/rustup", + "PATH": "${CARGO_HOME}/bin:${PATH}" + }, + "capAdd": [ + "SYS_PTRACE" + ], + "securityOpt": [ + "seccomp=unconfined" + ], + "settings": { + "lldb.executable": "/usr/bin/lldb", + "files.watcherExclude": { + "**/target/**": true + }, + "rust-analyzer.checkOnSave.command": "clippy" + }, + "install": { + "app": "", + "file": "install.sh" + } +} \ No newline at end of file diff --git a/src/rust/feature.json b/src/rust/feature.json deleted file mode 100644 index 147969f..0000000 --- a/src/rust/feature.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "id": "rust", - "name": "Rust", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "none", - "1.55", - "1.54", - "1.53" - ], - "default": "latest", - "description": "Select or enter a version of Rust to install." - }, - "profile": { - "type": "string", - "proposals": [ - "minimal", - "default", - "complete" - ], - "default": "minimal", - "description": "Select a rustup install profile." - } - }, - "extensions": [ - "vadimcn.vscode-lldb", - "mutantdino.resourcemonitor", - "rust-lang.rust-analyzer", - "tamasfe.even-better-toml", - "serayuzgur.crates" - ], - "containerEnv": { - "CARGO_HOME": "/usr/local/cargo", - "RUSTUP_HOME": "/usr/local/rustup", - "PATH": "${CARGO_HOME}/bin:${PATH}" - }, - "capAdd": [ - "SYS_PTRACE" - ], - "securityOpt": [ - "seccomp=unconfined" - ], - "settings": { - "lldb.executable": "/usr/bin/lldb", - "files.watcherExclude": { - "**/target/**": true - }, - "rust-analyzer.checkOnSave.command": "clippy" - }, - "install": { - "app": "", - "file": "install.sh" - } -} \ No newline at end of file diff --git a/src/rust/install.sh b/src/rust/install.sh index 1d90b14..07a36a7 100644 --- a/src/rust/install.sh +++ b/src/rust/install.sh @@ -6,16 +6,15 @@ # # Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/rust.md # Maintainer: The VS Code and Codespaces Teams -# -# Syntax: ./rust-debian.sh [CARGO_HOME] [RUSTUP_HOME] [non-root user] [add CARGO/RUSTUP_HOME to rc files flag] [whether to update rust] [Rust version] [rustup install profile] -export CARGO_HOME=${1:-"/usr/local/cargo"} -export RUSTUP_HOME=${2:-"/usr/local/rustup"} -USERNAME=${3:-"automatic"} -UPDATE_RC=${4:-"true"} -UPDATE_RUST=${5:-"false"} -RUST_VERSION=${6:-"latest"} -RUSTUP_PROFILE=${7:-"minimal"} +RUST_VERSION=${VERSION:-"latest"} +RUSTUP_PROFILE=${PROFILE:-"minimal"} + +export CARGO_HOME=${CARGO_HOME:-"/usr/local/cargo"} +export RUSTUP_HOME=${RUSTUP_HOME:-"/usr/local/rustup"} +USERNAME=${USERNAME:-"automatic"} +UPDATE_RC=${UPDATE_RC:-"true"} +UPDATE_RUST=${UPDATE_RUST:-"false"} set -e @@ -33,7 +32,7 @@ chmod +x /etc/profile.d/00-restore-env.sh 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