From 3de6a928331353b2ebe698d61b0823cf14dc30d0 Mon Sep 17 00:00:00 2001 From: Pablo Ulloa Date: Sun, 26 Jan 2025 04:15:58 +0000 Subject: [PATCH] Feat: added support for root user for bun feature --- src/bun/devcontainer-feature.json | 2 +- src/bun/install.sh | 20 ++++++++++++-------- test/bun/issue_46.sh | 9 +++++++++ test/bun/issue_46_beta.sh | 9 +++++++++ test/bun/scenarios.json | 18 ++++++++++++++++++ 5 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 test/bun/issue_46.sh create mode 100644 test/bun/issue_46_beta.sh diff --git a/src/bun/devcontainer-feature.json b/src/bun/devcontainer-feature.json index f4ee8e1..6733ed2 100644 --- a/src/bun/devcontainer-feature.json +++ b/src/bun/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Bun", "id": "bun", - "version": "1.1.2", + "version": "1.1.3", "description": "Installs Bun (Javascript runtime written in zig)", "documentationURL": "https://github.com/prulloac/devcontainer-features/tree/main/src/bun", "options": { diff --git a/src/bun/install.sh b/src/bun/install.sh index cda337d..dfa01c1 100644 --- a/src/bun/install.sh +++ b/src/bun/install.sh @@ -23,13 +23,14 @@ if [ "${USE_NPM}" = "false" ]; then curl -fsSL https://bun.sh/install | bash echo '# bun' >> /etc/bash.bashrc - echo 'export BUN_INSTALL="$HOME/.bun"' >> /etc/bash.bashrc + echo 'export BUN_INSTALL=/usr/local' >> /etc/bash.bashrc echo 'export PATH=$BUN_INSTALL/bin:$PATH' >> /etc/bash.bashrc if [ -x "$(command -v zsh)" ]; then - echo '# bun' >> /home/$_REMOTE_USER/.zshenv - echo 'export BUN_INSTALL="$HOME/.bun"' >> /home/$_REMOTE_USER/.zshenv - echo 'export PATH=$BUN_INSTALL/bin:$PATH' >> /home/$_REMOTE_USER/.zshenv + touch $_REMOTE_HOME/.zshenv + echo '# bun' >> $_REMOTE_HOME/.zshenv + echo 'export BUN_INSTALL=/usr/local' >> $_REMOTE_HOME/.zshenv + echo 'export PATH=$BUN_INSTALL/bin:$PATH' >> $_REMOTE_HOME/.zshenv fi else @@ -45,12 +46,15 @@ else npm install --global bun echo '# bun' >> /etc/bash.bashrc - echo 'export BUN_INSTALL="$HOME/.bun"' >> /etc/bash.bashrc + echo 'export BUN_INSTALL=/usr/local' >> /etc/bash.bashrc echo 'export PATH=$BUN_INSTALL/bin:$PATH' >> /etc/bash.bashrc - echo '# bun' >> /home/$_REMOTE_USER/.zshenv - echo 'export BUN_INSTALL="$HOME/.bun"' >> /home/$_REMOTE_USER/.zshenv - echo 'export PATH=$BUN_INSTALL/bin:$PATH' >> /home/$_REMOTE_USER/.zshenv + if [ -x "$(command -v zsh)" ]; then + touch $_REMOTE_HOME/.zshenv + echo '# bun' >> $_REMOTE_HOME/.zshenv + echo 'export BUN_INSTALL=/usr/local' >> $_REMOTE_HOME/.zshenv + echo 'export PATH=$BUN_INSTALL/bin:$PATH' >> $_REMOTE_HOME/.zshenv + fi fi diff --git a/test/bun/issue_46.sh b/test/bun/issue_46.sh new file mode 100644 index 0000000..f87dbbd --- /dev/null +++ b/test/bun/issue_46.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +source dev-container-features-test-lib + +check "validate bun installation" bun --version | grep '1' + +reportResults \ No newline at end of file diff --git a/test/bun/issue_46_beta.sh b/test/bun/issue_46_beta.sh new file mode 100644 index 0000000..f87dbbd --- /dev/null +++ b/test/bun/issue_46_beta.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +source dev-container-features-test-lib + +check "validate bun installation" bun --version | grep '1' + +reportResults \ No newline at end of file diff --git a/test/bun/scenarios.json b/test/bun/scenarios.json index 6384b51..39b7242 100644 --- a/test/bun/scenarios.json +++ b/test/bun/scenarios.json @@ -27,5 +27,23 @@ }, "remoteUser": "vscode", "updateContentCommand": "npm install -g @devcontainers/cli" + }, + "issue_46": { + "name": "issue_46", + "image": "mcr.microsoft.com/devcontainers/base:bookworm", + "features": { + "bun": {} + }, + "remoteUser": "root" + }, + "issue_46_beta": { + "name": "issue_46 with useNpm", + "image": "mcr.microsoft.com/devcontainers/base:bookworm", + "features": { + "bun": { + "useNpm": true + } + }, + "remoteUser": "root" } } \ No newline at end of file