aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/node/devcontainer-feature.json4
-rwxr-xr-xsrc/node/install.sh24
-rw-r--r--test/node/scenarios.json20
-rwxr-xr-xtest/node/zsh_default.sh12
4 files changed, 37 insertions, 23 deletions
diff --git a/src/node/devcontainer-feature.json b/src/node/devcontainer-feature.json
index 9bf90b6..80bd912 100644
--- a/src/node/devcontainer-feature.json
+++ b/src/node/devcontainer-feature.json
@@ -1,6 +1,6 @@
{
"id": "node",
- "version": "1.2.0",
+ "version": "1.2.1",
"name": "Node.js (via nvm), yarn and pnpm",
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/node",
"description": "Installs Node.js, nvm, yarn, pnpm, and needed dependencies.",
@@ -49,4 +49,4 @@
"installsAfter": [
"ghcr.io/devcontainers/features/common-utils"
]
-}
+} \ No newline at end of file
diff --git a/src/node/install.sh b/src/node/install.sh
index 9048ac2..1ce8fee 100755
--- a/src/node/install.sh
+++ b/src/node/install.sh
@@ -9,7 +9,7 @@
export NODE_VERSION="${VERSION:-"lts"}"
export NVM_VERSION="${NVMVERSION:-"0.39.2"}"
-export NVM_DIR=${NVMINSTALLPATH:-"/usr/local/share/nvm"}
+export NVM_DIR="${NVMINSTALLPATH:-"/usr/local/share/nvm"}"
INSTALL_TOOLS_FOR_NODE_GYP="${NODEGYPDEPENDENCIES:-true}"
# Comma-separated list of node versions to be installed (with nvm)
@@ -118,10 +118,10 @@ set -e
umask 0002
# Do not update profile - we'll do this manually
export PROFILE=/dev/null
-curl -so- https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash
-source ${NVM_DIR}/nvm.sh
+curl -so- "https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh" | bash
+source "${NVM_DIR}/nvm.sh"
if [ "${NODE_VERSION}" != "" ]; then
- nvm alias default ${NODE_VERSION}
+ nvm alias default "${NODE_VERSION}"
fi
EOF
)"
@@ -149,9 +149,9 @@ usermod -a -G nvm ${USERNAME}
umask 0002
if [ ! -d "${NVM_DIR}" ]; then
# Create nvm dir, and set sticky bit
- mkdir -p ${NVM_DIR}
- chown "${USERNAME}:nvm" ${NVM_DIR}
- chmod g+rws ${NVM_DIR}
+ mkdir -p "${NVM_DIR}"
+ chown "${USERNAME}:nvm" "${NVM_DIR}"
+ chmod g+rws "${NVM_DIR}"
su ${USERNAME} -c "${nvm_install_snippet}" 2>&1
# Update rc files
if [ "${UPDATE_RC}" = "true" ]; then
@@ -160,11 +160,11 @@ if [ ! -d "${NVM_DIR}" ]; then
else
echo "NVM already installed."
if [ "${NODE_VERSION}" != "" ]; then
- su ${USERNAME} -c "umask 0002 && . $NVM_DIR/nvm.sh && nvm install ${NODE_VERSION} && nvm alias default ${NODE_VERSION}"
+ su ${USERNAME} -c "umask 0002 && . '$NVM_DIR/nvm.sh' && nvm install '${NODE_VERSION}' && nvm alias default '${NODE_VERSION}'"
fi
fi
-# Additional node versions to be installed but not be set as
+# Additional node versions to be installed but not be set as
# default we can assume the nvm is the group owner of the nvm
# directory and the sticky bit on directories so any installed
# files will have will have the correct ownership (nvm)
@@ -173,12 +173,12 @@ if [ ! -z "${ADDITIONAL_VERSIONS}" ]; then
IFS=","
read -a additional_versions <<< "$ADDITIONAL_VERSIONS"
for ver in "${additional_versions[@]}"; do
- su ${USERNAME} -c "umask 0002 && . $NVM_DIR/nvm.sh && nvm install ${ver}"
+ su ${USERNAME} -c "umask 0002 && . '$NVM_DIR/nvm.sh' && nvm install '${ver}'"
done
# Ensure $NODE_VERSION is on the $PATH
if [ "${NODE_VERSION}" != "" ]; then
- su ${USERNAME} -c "umask 0002 && . $NVM_DIR/nvm.sh && nvm use default"
+ su ${USERNAME} -c "umask 0002 && . '$NVM_DIR/nvm.sh' && nvm use default"
fi
IFS=$OLDIFS
fi
@@ -218,7 +218,7 @@ fi
# Clean up
-su ${USERNAME} -c "umask 0002 && . $NVM_DIR/nvm.sh && nvm clear-cache"
+su ${USERNAME} -c "umask 0002 && . '$NVM_DIR/nvm.sh' && nvm clear-cache"
rm -rf /var/lib/apt/lists/*
# Ensure privs are correct for installed node versions. Unfortunately the
diff --git a/test/node/scenarios.json b/test/node/scenarios.json
index 6112a6e..5524f5c 100644
--- a/test/node/scenarios.json
+++ b/test/node/scenarios.json
@@ -17,21 +17,23 @@
}
}
},
- "version_none": {
- "image": "mcr.microsoft.com/devcontainers/base",
- "remoteUser": "vscode",
+ "zsh_default": {
+ "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"node": {
- "version": "none"
+ "version": "lts"
+ },
+ "common-utils": {
+ "configureZshAsDefaultShell": true
}
}
},
- "install_node_on_universal_image": {
- "image": "mcr.microsoft.com/devcontainers/universal",
- "remoteUser": "codespace",
+ "version_none": {
+ "image": "mcr.microsoft.com/devcontainers/base",
+ "remoteUser": "vscode",
"features": {
"node": {
- "version": "19.1.0"
+ "version": "none"
}
}
},
@@ -43,4 +45,4 @@
}
}
}
-}
+} \ No newline at end of file
diff --git a/test/node/zsh_default.sh b/test/node/zsh_default.sh
new file mode 100755
index 0000000..c7c9e57
--- /dev/null
+++ b/test/node/zsh_default.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -e
+
+# Optional: Import test library
+source dev-container-features-test-lib
+
+# Definition specific tests
+check "nvm" bash -c ". /usr/local/share/nvm/nvm.sh && nvm install 10"
+
+# Report result
+reportResults