mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-02-04 17:02:48 +08:00
Compare commits
24 Commits
fix-nvmrc-
...
62387b8f92
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62387b8f92 | ||
|
|
44e2590cdf | ||
|
|
242d997da5 | ||
|
|
5533699ec5 | ||
|
|
6d761baef8 | ||
|
|
973840565e | ||
|
|
29a652f90f | ||
|
|
b1dd81097f | ||
|
|
4d98875a3a | ||
|
|
4c3edc5e56 | ||
|
|
35212c1346 | ||
|
|
d2f93c1c8e | ||
|
|
f9dbad9832 | ||
|
|
c451e7a4c8 | ||
|
|
9ba422e561 | ||
|
|
38ffc713a7 | ||
|
|
aa1d829102 | ||
|
|
ec8906b284 | ||
|
|
0509776196 | ||
|
|
01a8749d7f | ||
|
|
0fbe3a6776 | ||
|
|
a36448ffcd | ||
|
|
4d364c2e7b | ||
|
|
81f13638d7 |
7
.github/SECURITY.md
vendored
7
.github/SECURITY.md
vendored
@@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
Please file a private vulnerability report via GitHub, email [@ljharb](https://github.com/ljharb), or see https://tidelift.com/security if you have a potential security vulnerability to report.
|
Please file a private vulnerability report via GitHub, email [@ljharb](https://github.com/ljharb), or see https://tidelift.com/security if you have a potential security vulnerability to report.
|
||||||
|
|
||||||
|
## Escalation
|
||||||
|
|
||||||
|
If you do not receive an acknowledgement of your report within 6 business days, or if you cannot find a private security contact for the project, you may escalate to the OpenJS Foundation CNA at `security@lists.openjsf.org`.
|
||||||
|
|
||||||
|
If the project acknowledges your report but does not provide any further response or engagement within 14 days, escalation is also appropriate.
|
||||||
|
|
||||||
|
|
||||||
## OpenSSF CII Best Practices
|
## OpenSSF CII Best Practices
|
||||||
|
|
||||||
[](https://bestpractices.coreinfrastructure.org/projects/684)
|
[](https://bestpractices.coreinfrastructure.org/projects/684)
|
||||||
|
|||||||
9
.github/workflows/lint.yml
vendored
9
.github/workflows/lint.yml
vendored
@@ -70,3 +70,12 @@ jobs:
|
|||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v6
|
||||||
- name: check tests filenames
|
- name: check tests filenames
|
||||||
run: ./rename_test.sh --check
|
run: ./rename_test.sh --check
|
||||||
|
|
||||||
|
all:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
name: 'all linting'
|
||||||
|
needs: [eclint, dockerfile_lint, doctoc, test_naming]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: true
|
||||||
|
|||||||
3
.github/workflows/nvm-install-test.yml
vendored
3
.github/workflows/nvm-install-test.yml
vendored
@@ -10,6 +10,9 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
default: 'HEAD'
|
default: 'HEAD'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
matrix:
|
matrix:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
101
.github/workflows/tests-fast.yml
vendored
Normal file
101
.github/workflows/tests-fast.yml
vendored
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
name: 'Tests: fast'
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
fast:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
name: 'fast (${{ matrix.shell }}, ${{ matrix.awk }})'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: 'script -q -e -c "${{ matrix.shell }} {0}"'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
shell:
|
||||||
|
- sh
|
||||||
|
- bash
|
||||||
|
- dash
|
||||||
|
- zsh
|
||||||
|
# - ksh
|
||||||
|
awk:
|
||||||
|
- gawk
|
||||||
|
- mawk
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Harden Runner
|
||||||
|
uses: step-security/harden-runner@v2
|
||||||
|
with:
|
||||||
|
allowed-endpoints:
|
||||||
|
github.com:443
|
||||||
|
registry.npmjs.org:443
|
||||||
|
raw.githubusercontent.com:443
|
||||||
|
nodejs.org:443
|
||||||
|
iojs.org:443
|
||||||
|
unofficial-builds.nodejs.org:443
|
||||||
|
azure.archive.ubuntu.com:80
|
||||||
|
packages.microsoft.com:443
|
||||||
|
registry-1.docker.io:443
|
||||||
|
auth.docker.io:443
|
||||||
|
production.cloudflare.docker.com:443
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- name: Install zsh, additional shells, and awk variant
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y zsh ${{ matrix.awk }}
|
||||||
|
if [ "${{ matrix.shell }}" != "sh" ] && [ "${{ matrix.shell }}" != "bash" ] && [ "${{ matrix.shell }}" != "zsh" ]; then
|
||||||
|
sudo apt-get install -y ${{ matrix.shell }}
|
||||||
|
fi
|
||||||
|
# Set the selected awk as the default
|
||||||
|
sudo update-alternatives --set awk /usr/bin/${{ matrix.awk }}
|
||||||
|
shell: bash
|
||||||
|
- run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }}
|
||||||
|
- run: awk --version 2>&1 | head -1 || awk -W version 2>&1 | head -1
|
||||||
|
- run: curl --version
|
||||||
|
- run: wget --version
|
||||||
|
- uses: ljharb/actions/node/install@main
|
||||||
|
name: 'npm install && version checks'
|
||||||
|
with:
|
||||||
|
node-version: 'lts/*'
|
||||||
|
skip-ls-check: true
|
||||||
|
- run: npm ls urchin
|
||||||
|
- run: npx which urchin
|
||||||
|
- run: env
|
||||||
|
- name: Hide system node
|
||||||
|
run: |
|
||||||
|
if [ -f /usr/local/bin/node ]; then sudo mv /usr/local/bin/node /usr/local/bin/node.bak; fi
|
||||||
|
if [ -f /usr/local/bin/npm ]; then sudo mv /usr/local/bin/npm /usr/local/bin/npm.bak; fi
|
||||||
|
if [ -f /usr/local/bin/npx ]; then sudo mv /usr/local/bin/npx /usr/local/bin/npx.bak; fi
|
||||||
|
shell: bash
|
||||||
|
- name: Run fast tests
|
||||||
|
run: |
|
||||||
|
URCHIN_PATH="$(npx which urchin)"
|
||||||
|
unset NVM_CD_FLAGS NVM_BIN NVM_INC
|
||||||
|
export NVM_DIR="${{ github.workspace }}"
|
||||||
|
export PATH="$(echo "$PATH" | tr ':' '\n' | grep -v '\.nvm' | grep -v 'toolcache' | tr '\n' ':')"
|
||||||
|
make TERM=xterm-256color TEST_SUITE="fast" SHELL="${{ matrix.shell }}" URCHIN="$URCHIN_PATH" test-${{ matrix.shell }}
|
||||||
|
- name: Restore system node
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
if [ -f /usr/local/bin/node.bak ]; then sudo mv /usr/local/bin/node.bak /usr/local/bin/node; fi
|
||||||
|
if [ -f /usr/local/bin/npm.bak ]; then sudo mv /usr/local/bin/npm.bak /usr/local/bin/npm; fi
|
||||||
|
if [ -f /usr/local/bin/npx.bak ]; then sudo mv /usr/local/bin/npx.bak /usr/local/bin/npx; fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
all:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
name: 'all fast tests'
|
||||||
|
needs: [fast]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: true
|
||||||
99
.github/workflows/tests-installation-iojs.yml
vendored
Normal file
99
.github/workflows/tests-installation-iojs.yml
vendored
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
name: 'Tests: installation_iojs'
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
installation_iojs_without_curl:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
name: 'installation_iojs without curl (${{ matrix.shell }})'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: 'script -q -e -c "${{ matrix.shell }} {0}"'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
shell:
|
||||||
|
- sh
|
||||||
|
- bash
|
||||||
|
- dash
|
||||||
|
- zsh
|
||||||
|
# - ksh
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Harden Runner
|
||||||
|
uses: step-security/harden-runner@v2
|
||||||
|
with:
|
||||||
|
allowed-endpoints:
|
||||||
|
github.com:443
|
||||||
|
registry.npmjs.org:443
|
||||||
|
raw.githubusercontent.com:443
|
||||||
|
nodejs.org:443
|
||||||
|
iojs.org:443
|
||||||
|
azure.archive.ubuntu.com:80
|
||||||
|
packages.microsoft.com:443
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- name: Install zsh and additional shells
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y zsh
|
||||||
|
if [ "${{ matrix.shell }}" != "sh" ] && [ "${{ matrix.shell }}" != "bash" ] && [ "${{ matrix.shell }}" != "zsh" ]; then
|
||||||
|
sudo apt-get install -y ${{ matrix.shell }}
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
- run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }}
|
||||||
|
- run: wget --version
|
||||||
|
- uses: ljharb/actions/node/install@main
|
||||||
|
name: 'npm install && version checks'
|
||||||
|
with:
|
||||||
|
node-version: 'lts/*'
|
||||||
|
skip-ls-check: true
|
||||||
|
- run: npm ls urchin
|
||||||
|
- run: npx which urchin
|
||||||
|
- name: Remove curl
|
||||||
|
run: sudo apt-get remove curl -y
|
||||||
|
shell: bash
|
||||||
|
- run: '! command -v curl'
|
||||||
|
shell: bash
|
||||||
|
- run: env
|
||||||
|
- name: Hide system node
|
||||||
|
run: |
|
||||||
|
if [ -f /usr/local/bin/node ]; then sudo mv /usr/local/bin/node /usr/local/bin/node.bak; fi
|
||||||
|
if [ -f /usr/local/bin/npm ]; then sudo mv /usr/local/bin/npm /usr/local/bin/npm.bak; fi
|
||||||
|
if [ -f /usr/local/bin/npx ]; then sudo mv /usr/local/bin/npx /usr/local/bin/npx.bak; fi
|
||||||
|
shell: bash
|
||||||
|
- name: Run installation_iojs tests
|
||||||
|
run: |
|
||||||
|
URCHIN_PATH="$(npx which urchin)"
|
||||||
|
unset NVM_CD_FLAGS NVM_BIN NVM_INC
|
||||||
|
export NVM_DIR="${{ github.workspace }}"
|
||||||
|
export PATH="$(echo "$PATH" | tr ':' '\n' | grep -v '\.nvm' | grep -v 'toolcache' | tr '\n' ':')"
|
||||||
|
make TERM=xterm-256color TEST_SUITE="installation_iojs" SHELL="${{ matrix.shell }}" URCHIN="$URCHIN_PATH" test-${{ matrix.shell }}
|
||||||
|
- name: Restore system node
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
if [ -f /usr/local/bin/node.bak ]; then sudo mv /usr/local/bin/node.bak /usr/local/bin/node; fi
|
||||||
|
if [ -f /usr/local/bin/npm.bak ]; then sudo mv /usr/local/bin/npm.bak /usr/local/bin/npm; fi
|
||||||
|
if [ -f /usr/local/bin/npx.bak ]; then sudo mv /usr/local/bin/npx.bak /usr/local/bin/npx; fi
|
||||||
|
shell: bash
|
||||||
|
- name: Restore curl
|
||||||
|
if: always()
|
||||||
|
run: sudo apt-get install curl -y
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
all:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
name: 'all installation_iojs tests'
|
||||||
|
needs: [installation_iojs_without_curl]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: true
|
||||||
122
.github/workflows/tests-installation-node.yml
vendored
Normal file
122
.github/workflows/tests-installation-node.yml
vendored
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
name: 'Tests: installation_node'
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
installation_node:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
name: "installation_node (${{ matrix.shell }}${{ matrix.without_curl && ', without curl' || '' }})"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
shell:
|
||||||
|
- sh
|
||||||
|
- bash
|
||||||
|
- dash
|
||||||
|
- zsh
|
||||||
|
# - ksh
|
||||||
|
without_curl:
|
||||||
|
- false
|
||||||
|
- true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Harden Runner
|
||||||
|
uses: step-security/harden-runner@v2
|
||||||
|
with:
|
||||||
|
allowed-endpoints:
|
||||||
|
github.com:443
|
||||||
|
registry.npmjs.org:443
|
||||||
|
raw.githubusercontent.com:443
|
||||||
|
nodejs.org:443
|
||||||
|
iojs.org:443
|
||||||
|
azure.archive.ubuntu.com:80
|
||||||
|
packages.microsoft.com:443
|
||||||
|
archive.ubuntu.com:80
|
||||||
|
security.ubuntu.com:80
|
||||||
|
production.cloudflare.docker.com:443
|
||||||
|
registry-1.docker.io:443
|
||||||
|
auth.docker.io:443
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- uses: ljharb/actions/node/install@main
|
||||||
|
name: 'npm install && version checks'
|
||||||
|
with:
|
||||||
|
node-version: 'lts/*'
|
||||||
|
skip-ls-check: true
|
||||||
|
- run: npm ls urchin
|
||||||
|
- run: npx which urchin
|
||||||
|
- name: Run installation_node tests in container
|
||||||
|
run: |
|
||||||
|
docker run --rm \
|
||||||
|
-v "${{ github.workspace }}:/workspace" \
|
||||||
|
-w /workspace \
|
||||||
|
-e "TEST_SHELL=${{ matrix.shell }}" \
|
||||||
|
-e "TERM=xterm-256color" \
|
||||||
|
-e "DEBIAN_FRONTEND=noninteractive" \
|
||||||
|
-e "GITHUB_ACTIONS=true" \
|
||||||
|
-e "WITHOUT_CURL=${{ matrix.without_curl }}" \
|
||||||
|
ubuntu:16.04 \
|
||||||
|
bash -c '
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# Retry apt-get update up to 5 times due to flaky Ubuntu mirrors
|
||||||
|
# apt-get update can return 0 even with partial failures, so check for warnings
|
||||||
|
for i in 1 2 3 4 5; do
|
||||||
|
if apt-get update 2>&1 | tee /tmp/apt-update.log | grep -qE "^(W:|E:|Err:)"; then
|
||||||
|
echo "apt-get update had warnings/errors, attempt $i/5"
|
||||||
|
cat /tmp/apt-update.log
|
||||||
|
sleep $((i * 5))
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
apt-get install -y git curl wget make build-essential python zsh libssl-dev
|
||||||
|
if [ "$TEST_SHELL" != "sh" ] && [ "$TEST_SHELL" != "bash" ]; then
|
||||||
|
apt-get install -y $TEST_SHELL || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use nvm to install Node.js for running urchin
|
||||||
|
# Node 16 is the last version supporting GLIBC 2.23 (Ubuntu 16.04)
|
||||||
|
export NVM_DIR="/workspace"
|
||||||
|
. /workspace/nvm.sh
|
||||||
|
nvm install 16
|
||||||
|
nvm use 16
|
||||||
|
|
||||||
|
npm ls urchin
|
||||||
|
URCHIN_PATH="$(npx which urchin)"
|
||||||
|
|
||||||
|
# Remove curl if testing without it
|
||||||
|
if [ "$WITHOUT_CURL" = "true" ]; then
|
||||||
|
apt-get remove curl -y
|
||||||
|
! command -v curl
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Now clean up nvm state for the actual tests, but keep NVM_DIR set
|
||||||
|
nvm deactivate || true
|
||||||
|
nvm unalias default || true
|
||||||
|
unset NVM_CD_FLAGS NVM_BIN NVM_INC
|
||||||
|
export PATH="$(echo "$PATH" | tr ":" "\n" | grep -v "\.nvm" | grep -v "toolcache" | tr "\n" ":")"
|
||||||
|
|
||||||
|
# Clean any cached files from the nvm install above
|
||||||
|
rm -rf "$NVM_DIR/.cache" "$NVM_DIR/versions" "$NVM_DIR/alias"
|
||||||
|
|
||||||
|
make TEST_SUITE="installation_node" SHELL="$TEST_SHELL" URCHIN="$URCHIN_PATH" test-$TEST_SHELL
|
||||||
|
'
|
||||||
|
|
||||||
|
all:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
name: 'all installation_node tests'
|
||||||
|
needs: [installation_node]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: true
|
||||||
112
.github/workflows/tests-xenial.yml
vendored
Normal file
112
.github/workflows/tests-xenial.yml
vendored
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
name: 'Tests: xenial'
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
xenial:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
name: 'xenial (${{ matrix.shell }})'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
shell:
|
||||||
|
- sh
|
||||||
|
- bash
|
||||||
|
- dash
|
||||||
|
- zsh
|
||||||
|
# - ksh
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Harden Runner
|
||||||
|
uses: step-security/harden-runner@v2
|
||||||
|
with:
|
||||||
|
allowed-endpoints:
|
||||||
|
github.com:443
|
||||||
|
registry.npmjs.org:443
|
||||||
|
raw.githubusercontent.com:443
|
||||||
|
nodejs.org:443
|
||||||
|
iojs.org:443
|
||||||
|
azure.archive.ubuntu.com:80
|
||||||
|
packages.microsoft.com:443
|
||||||
|
archive.ubuntu.com:80
|
||||||
|
security.ubuntu.com:80
|
||||||
|
production.cloudflare.docker.com:443
|
||||||
|
registry-1.docker.io:443
|
||||||
|
auth.docker.io:443
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- uses: ljharb/actions/node/install@main
|
||||||
|
name: 'npm install && version checks'
|
||||||
|
with:
|
||||||
|
node-version: 'lts/*'
|
||||||
|
skip-ls-check: true
|
||||||
|
- run: npm ls urchin
|
||||||
|
- run: npx which urchin
|
||||||
|
- name: Run xenial tests in container
|
||||||
|
run: |
|
||||||
|
docker run --rm \
|
||||||
|
-v "${{ github.workspace }}:/workspace" \
|
||||||
|
-w /workspace \
|
||||||
|
-e "TEST_SHELL=${{ matrix.shell }}" \
|
||||||
|
-e "TERM=xterm-256color" \
|
||||||
|
-e "DEBIAN_FRONTEND=noninteractive" \
|
||||||
|
-e "GITHUB_ACTIONS=true" \
|
||||||
|
ubuntu:16.04 \
|
||||||
|
bash -c '
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# Retry apt-get update up to 5 times due to flaky Ubuntu mirrors
|
||||||
|
# apt-get update can return 0 even with partial failures, so check for warnings
|
||||||
|
for i in 1 2 3 4 5; do
|
||||||
|
if apt-get update 2>&1 | tee /tmp/apt-update.log | grep -qE "^(W:|E:|Err:)"; then
|
||||||
|
echo "apt-get update had warnings/errors, attempt $i/5"
|
||||||
|
cat /tmp/apt-update.log
|
||||||
|
sleep $((i * 5))
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
apt-get install -y git curl wget make build-essential python zsh libssl-dev
|
||||||
|
if [ "$TEST_SHELL" != "sh" ] && [ "$TEST_SHELL" != "bash" ]; then
|
||||||
|
apt-get install -y $TEST_SHELL || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use nvm to install Node.js for running urchin
|
||||||
|
# Node 16 is the last version supporting GLIBC 2.23 (Ubuntu 16.04)
|
||||||
|
export NVM_DIR="/workspace"
|
||||||
|
. /workspace/nvm.sh
|
||||||
|
nvm install 16
|
||||||
|
nvm use 16
|
||||||
|
|
||||||
|
npm ls urchin
|
||||||
|
URCHIN_PATH="$(npx which urchin)"
|
||||||
|
|
||||||
|
# Now clean up nvm state for the actual tests, but keep NVM_DIR set
|
||||||
|
nvm deactivate || true
|
||||||
|
nvm unalias default || true
|
||||||
|
unset NVM_CD_FLAGS NVM_BIN NVM_INC
|
||||||
|
export PATH="$(echo "$PATH" | tr ":" "\n" | grep -v "\.nvm" | grep -v "toolcache" | tr "\n" ":")"
|
||||||
|
|
||||||
|
# Clean any cached files from the nvm install above
|
||||||
|
rm -rf "$NVM_DIR/.cache" "$NVM_DIR/versions" "$NVM_DIR/alias"
|
||||||
|
|
||||||
|
make TEST_SUITE="xenial" SHELL="$TEST_SHELL" URCHIN="$URCHIN_PATH" test-$TEST_SHELL
|
||||||
|
'
|
||||||
|
|
||||||
|
all:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
name: 'all xenial tests'
|
||||||
|
needs: [xenial]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: true
|
||||||
15
.github/workflows/tests.yml
vendored
15
.github/workflows/tests.yml
vendored
@@ -12,6 +12,7 @@ jobs:
|
|||||||
|
|
||||||
name: "tests"
|
name: "tests"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: 'script -q -e -c "${{ matrix.shell }} {0}"'
|
shell: 'script -q -e -c "${{ matrix.shell }} {0}"'
|
||||||
@@ -68,7 +69,19 @@ jobs:
|
|||||||
- run: npm ls urchin
|
- run: npm ls urchin
|
||||||
- run: npx which urchin
|
- run: npx which urchin
|
||||||
- run: env
|
- run: env
|
||||||
- run: make TERM=xterm-256color TEST_SUITE="${{ matrix.suite }}" SHELL="${{ matrix.shell }}" URCHIN="$(npx which urchin)" test-${{ matrix.shell }}
|
- name: Run tests
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
for attempt in 1 2 3; do
|
||||||
|
timeout 600 make TERM=xterm-256color TEST_SUITE="${{ matrix.suite }}" SHELL="${{ matrix.shell }}" URCHIN="$(npx which urchin)" test-${{ matrix.shell }} && exit 0
|
||||||
|
EXIT_CODE=$?
|
||||||
|
if [ $EXIT_CODE -ne 124 ]; then
|
||||||
|
exit $EXIT_CODE
|
||||||
|
fi
|
||||||
|
echo "Attempt ${attempt} timed out; retrying..."
|
||||||
|
done
|
||||||
|
echo "All 3 attempts timed out."
|
||||||
|
exit 1
|
||||||
|
|
||||||
nvm:
|
nvm:
|
||||||
permissions:
|
permissions:
|
||||||
|
|||||||
94
.travis.yml
94
.travis.yml
@@ -1,94 +0,0 @@
|
|||||||
language: generic
|
|
||||||
dist: focal
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- zsh
|
|
||||||
# - ksh
|
|
||||||
# - gcc-4.8
|
|
||||||
# - g++-4.8
|
|
||||||
|
|
||||||
# https://gist.github.com/iedemam/9830045
|
|
||||||
git:
|
|
||||||
submodules: false
|
|
||||||
|
|
||||||
cache:
|
|
||||||
ccache: true
|
|
||||||
directories:
|
|
||||||
- $TRAVIS_BUILD_DIR/.cache
|
|
||||||
- $TRAVIS_BUILD_DIR/node_modules
|
|
||||||
before_install:
|
|
||||||
- sudo sed -i 's/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf
|
|
||||||
- sudo update-ca-certificates -f
|
|
||||||
|
|
||||||
# https://gist.github.com/iedemam/9830045
|
|
||||||
- sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules
|
|
||||||
- git submodule update --init --recursive
|
|
||||||
|
|
||||||
- $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL
|
|
||||||
- curl --version
|
|
||||||
- wget --version
|
|
||||||
- bash --version | head
|
|
||||||
- zsh --version
|
|
||||||
- dpkg -s dash | grep ^Version | awk '{print $2}'
|
|
||||||
# install python
|
|
||||||
- pyenv local 2.7.18 || pyenv install 2.7.18
|
|
||||||
- pyenv local 2.7.18 || echo 'pyenv failed'
|
|
||||||
- python -V
|
|
||||||
install:
|
|
||||||
- if [ -z "${SHELLCHECK-}" ]; then nvm install 16 && nvm unalias default && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi
|
|
||||||
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
|
||||||
script:
|
|
||||||
- if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ] || [ "${TEST_SUITE}" = 'xenial' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi
|
|
||||||
before_cache:
|
|
||||||
- if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi
|
|
||||||
jobs:
|
|
||||||
include:
|
|
||||||
- env: SHELL=bash TEST_SUITE=installation_node
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=sh TEST_SUITE=installation_node
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=dash TEST_SUITE=installation_node
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=zsh TEST_SUITE=installation_node
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1
|
|
||||||
dist: xenial
|
|
||||||
#- env: SHELL=ksh TEST_SUITE=installation_node
|
|
||||||
# dist: xenial
|
|
||||||
#- env: SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1
|
|
||||||
# dist: xenial
|
|
||||||
- env: SHELL=bash TEST_SUITE=xenial
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=sh TEST_SUITE=xenial
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=dash TEST_SUITE=xenial
|
|
||||||
dist: xenial
|
|
||||||
- env: SHELL=zsh TEST_SUITE=xenial
|
|
||||||
dist: xenial
|
|
||||||
#- env: SHELL=ksh TEST_SUITE=xenial
|
|
||||||
# dist: xenial
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- CXX=g++
|
|
||||||
- CC=gcc
|
|
||||||
- PATH="$(echo $PATH | sed 's/::/:/')"
|
|
||||||
- PATH="/usr/lib/ccache/:$PATH"
|
|
||||||
- NVM_DIR="${TRAVIS_BUILD_DIR}"
|
|
||||||
matrix:
|
|
||||||
- SHELL=sh TEST_SUITE=fast
|
|
||||||
- SHELL=dash TEST_SUITE=fast
|
|
||||||
- SHELL=bash TEST_SUITE=fast
|
|
||||||
- SHELL=zsh TEST_SUITE=fast
|
|
||||||
# - SHELL=ksh TEST_SUITE=fast
|
|
||||||
- SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1
|
|
||||||
- SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1
|
|
||||||
- SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1
|
|
||||||
- SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1
|
|
||||||
# - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# nvm Copilot Instructions
|
# nvm Coding Agent Instructions
|
||||||
|
|
||||||
This document provides guidance for GitHub Copilot when working with the Node Version Manager (nvm) codebase.
|
This document provides guidance for AI coding agents when working with the Node Version Manager (nvm) codebase.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@@ -424,4 +424,4 @@ nvm works on Windows via several compatibility layers:
|
|||||||
2. Include bash, curl, git, tar, and wget packages during installation
|
2. Include bash, curl, git, tar, and wget packages during installation
|
||||||
3. Run nvm installation in Cygwin terminal
|
3. Run nvm installation in Cygwin terminal
|
||||||
|
|
||||||
This guide should help GitHub Copilot understand the nvm codebase structure, testing procedures, and development environment setup requirements.
|
This guide should help AI coding agents understand the nvm codebase structure, testing procedures, and development environment setup requirements.
|
||||||
43
README.md
43
README.md
@@ -6,7 +6,7 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
||||||
# Node Version Manager [][3] [][4] [](https://bestpractices.dev/projects/684)
|
# Node Version Manager [][3] [][4] [](https://bestpractices.dev/projects/684)
|
||||||
|
|
||||||
<!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` -->
|
<!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` -->
|
||||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
@@ -104,10 +104,10 @@ nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be i
|
|||||||
|
|
||||||
To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
|
To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
|
||||||
```sh
|
```sh
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
```
|
```
|
||||||
```sh
|
```sh
|
||||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bashrc`, `~/.bash_profile`, `~/.zshrc`, or `~/.profile`). If you find the install script is updating the wrong profile file, set the `$PROFILE` env var to the profile file’s path, and then rerun the installation script.
|
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bashrc`, `~/.bash_profile`, `~/.zshrc`, or `~/.profile`). If you find the install script is updating the wrong profile file, set the `$PROFILE` env var to the profile file’s path, and then rerun the installation script.
|
||||||
@@ -134,7 +134,7 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta
|
|||||||
|
|
||||||
- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available.
|
- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available.
|
||||||
|
|
||||||
- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash'`
|
- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash'`
|
||||||
|
|
||||||
#### Installing in Docker
|
#### Installing in Docker
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ RUN touch "${BASH_ENV}"
|
|||||||
RUN echo '. "${BASH_ENV}"' >> ~/.bashrc
|
RUN echo '. "${BASH_ENV}"' >> ~/.bashrc
|
||||||
|
|
||||||
# Download and install nvm
|
# Download and install nvm
|
||||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | PROFILE="${BASH_ENV}" bash
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | PROFILE="${BASH_ENV}" bash
|
||||||
RUN echo node > .nvmrc
|
RUN echo node > .nvmrc
|
||||||
RUN nvm install
|
RUN nvm install
|
||||||
```
|
```
|
||||||
@@ -168,7 +168,7 @@ ARG NODE_VERSION=20
|
|||||||
RUN apt update && apt install curl -y
|
RUN apt update && apt install curl -y
|
||||||
|
|
||||||
# install nvm
|
# install nvm
|
||||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
|
|
||||||
# set env
|
# set env
|
||||||
ENV NVM_DIR=/root/.nvm
|
ENV NVM_DIR=/root/.nvm
|
||||||
@@ -194,7 +194,7 @@ After creation of the image you can start container interactively and run comman
|
|||||||
docker run --rm -it nvmimage
|
docker run --rm -it nvmimage
|
||||||
|
|
||||||
root@0a6b5a237c14:/# nvm -v
|
root@0a6b5a237c14:/# nvm -v
|
||||||
0.40.3
|
0.40.4
|
||||||
|
|
||||||
root@0a6b5a237c14:/# node -v
|
root@0a6b5a237c14:/# node -v
|
||||||
v19.9.0
|
v19.9.0
|
||||||
@@ -257,7 +257,7 @@ You can use a task:
|
|||||||
```yaml
|
```yaml
|
||||||
- name: Install nvm
|
- name: Install nvm
|
||||||
ansible.builtin.shell: >
|
ansible.builtin.shell: >
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
args:
|
args:
|
||||||
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
||||||
```
|
```
|
||||||
@@ -319,7 +319,7 @@ If you have `git` installed (requires git v1.7.10+):
|
|||||||
|
|
||||||
1. clone this repo in the root of your user profile
|
1. clone this repo in the root of your user profile
|
||||||
- `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm`
|
- `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm`
|
||||||
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.40.3`
|
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.40.4`
|
||||||
1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh`
|
1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh`
|
||||||
|
|
||||||
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
|
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
|
||||||
@@ -443,7 +443,7 @@ Node has a [schedule](https://github.com/nodejs/Release#release-schedule) for lo
|
|||||||
|
|
||||||
Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported.
|
Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported.
|
||||||
|
|
||||||
To get the latest LTS version of node and migrate your existing installed packages, use
|
To get the latest LTS version of node and migrate your existing installed packages, use:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
nvm install --reinstall-packages-from=current 'lts/*'
|
nvm install --reinstall-packages-from=current 'lts/*'
|
||||||
@@ -496,7 +496,10 @@ stevemao/left-pad
|
|||||||
|
|
||||||
### io.js
|
### io.js
|
||||||
|
|
||||||
If you want to install [io.js](https://github.com/iojs/io.js/):
|
> [!WARNING]
|
||||||
|
> io.js was a [fork of Node.js](https://en.wikipedia.org/wiki/Node.js#History), created in 2014 and merged back in 2015. io.js shipped v1, v2, and v3 release lines; post-merge, node.js began releasing with v4.
|
||||||
|
|
||||||
|
If you want to install io.js:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
nvm install iojs
|
nvm install iojs
|
||||||
@@ -925,13 +928,13 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh
|
|||||||
### Alpine Linux 3.13+
|
### Alpine Linux 3.13+
|
||||||
```sh
|
```sh
|
||||||
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
### Alpine Linux 3.5 - 3.12
|
### Alpine Linux 3.5 - 3.12
|
||||||
```sh
|
```sh
|
||||||
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
_Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._
|
_Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._
|
||||||
@@ -1034,13 +1037,13 @@ You have to make sure that the user directory name in `$HOME` and the user direc
|
|||||||
To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548)
|
To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548)
|
||||||
|
|
||||||
[1]: https://github.com/nvm-sh/nvm.git
|
[1]: https://github.com/nvm-sh/nvm.git
|
||||||
[2]: https://github.com/nvm-sh/nvm/blob/v0.40.3/install.sh
|
[2]: https://github.com/nvm-sh/nvm/blob/v0.40.4/install.sh
|
||||||
[3]: https://app.travis-ci.com/nvm-sh/nvm
|
[3]: https://github.com/nvm-sh/nvm/actions/workflows/tests-fast.yml
|
||||||
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.40.3
|
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.40.4
|
||||||
[Urchin]: https://git.sdf.org/tlevine/urchin
|
[Urchin]: https://git.sdf.org/tlevine/urchin
|
||||||
[Fish]: https://fishshell.com
|
[Fish]: https://fishshell.com
|
||||||
|
|
||||||
**Homebrew makes zsh directories unsecure**
|
**Homebrew makes zsh directories insecure**
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
zsh compinit: insecure directories, run compaudit for list.
|
zsh compinit: insecure directories, run compaudit for list.
|
||||||
@@ -1094,7 +1097,7 @@ Here's what you will need to do:
|
|||||||
If one of these broken versions is installed on your system, the above step will likely still succeed even if you didn't include the `--shared-zlib` flag.
|
If one of these broken versions is installed on your system, the above step will likely still succeed even if you didn't include the `--shared-zlib` flag.
|
||||||
However, later, when you attempt to `npm install` something using your old version of node.js, you will see `incorrect data check` errors.
|
However, later, when you attempt to `npm install` something using your old version of node.js, you will see `incorrect data check` errors.
|
||||||
If you want to avoid the possible hassle of dealing with this, include that flag.
|
If you want to avoid the possible hassle of dealing with this, include that flag.
|
||||||
For more details, see [this issue](https://github.com/nodejs/node/issues/39313) and [this comment](https://github.com/nodejs/node/issues/39313#issuecomment-90.40.376)
|
For more details, see [this issue](https://github.com/nodejs/node/issues/39313) and [this comment](https://github.com/nodejs/node/issues/39313#issuecomment-90.40.476)
|
||||||
|
|
||||||
- Exit back to your native shell.
|
- Exit back to your native shell.
|
||||||
|
|
||||||
@@ -1121,7 +1124,7 @@ Now you should be able to use node as usual.
|
|||||||
If you've encountered this error on WSL-2:
|
If you've encountered this error on WSL-2:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
|
||||||
% Total % Received % Xferd Average Speed Time Time Time Current
|
% Total % Received % Xferd Average Speed Time Time Time Current
|
||||||
Dload Upload Total Spent Left Speed
|
Dload Upload Total Spent Left Speed
|
||||||
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com
|
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com
|
||||||
@@ -1156,7 +1159,7 @@ Currently, the sole maintainer is [@ljharb](https://github.com/ljharb) - more ma
|
|||||||
|
|
||||||
## Project Support
|
## Project Support
|
||||||
|
|
||||||
Only the latest version (v0.40.3 at this time) is supported.
|
Only the latest version (v0.40.4 at this time) is supported.
|
||||||
|
|
||||||
## Enterprise Support
|
## Enterprise Support
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ nvm_install_dir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_latest_version() {
|
nvm_latest_version() {
|
||||||
nvm_echo "v0.40.3"
|
nvm_echo "v0.40.4"
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_profile_is_bash_or_zsh() {
|
nvm_profile_is_bash_or_zsh() {
|
||||||
@@ -428,7 +428,10 @@ nvm_do_install() {
|
|||||||
COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion\n'
|
COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion\n'
|
||||||
BASH_OR_ZSH=false
|
BASH_OR_ZSH=false
|
||||||
|
|
||||||
if [ -z "${NVM_PROFILE-}" ] ; then
|
if [ "${PROFILE-}" = '/dev/null' ] ; then
|
||||||
|
# the user has specifically requested NOT to have nvm touch their profile
|
||||||
|
echo
|
||||||
|
elif [ -z "${NVM_PROFILE-}" ] ; then
|
||||||
local TRIED_PROFILE
|
local TRIED_PROFILE
|
||||||
if [ -n "${PROFILE}" ]; then
|
if [ -n "${PROFILE}" ]; then
|
||||||
TRIED_PROFILE="${NVM_PROFILE} (as defined in \$PROFILE), "
|
TRIED_PROFILE="${NVM_PROFILE} (as defined in \$PROFILE), "
|
||||||
|
|||||||
9
nvm-exec
9
nvm-exec
@@ -9,9 +9,12 @@ unset NVM_CD_FLAGS
|
|||||||
|
|
||||||
if [ -n "$NODE_VERSION" ]; then
|
if [ -n "$NODE_VERSION" ]; then
|
||||||
nvm use "$NODE_VERSION" > /dev/null || exit 127
|
nvm use "$NODE_VERSION" > /dev/null || exit 127
|
||||||
elif ! nvm use >/dev/null 2>&1; then
|
else
|
||||||
echo "No NODE_VERSION provided; no .nvmrc file found" >&2
|
nvm_rc_version > /dev/null && nvm_ensure_version_installed "$NVM_RC_VERSION";
|
||||||
exit 127
|
if ! nvm use >/dev/null 2>&1; then
|
||||||
|
echo "No NODE_VERSION provided; no .nvmrc file found" >&2
|
||||||
|
exit 127
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|||||||
88
nvm.sh
88
nvm.sh
@@ -83,7 +83,7 @@ nvm_has_colors() {
|
|||||||
if nvm_has tput; then
|
if nvm_has tput; then
|
||||||
NVM_NUM_COLORS="$(command tput -T "${TERM:-vt100}" colors)"
|
NVM_NUM_COLORS="$(command tput -T "${TERM:-vt100}" colors)"
|
||||||
fi
|
fi
|
||||||
[ "${NVM_NUM_COLORS:--1}" -ge 8 ] && [ "${NVM_NO_COLORS-}" != '--no-colors' ]
|
[ -t 1 ] && [ "${NVM_NUM_COLORS:--1}" -ge 8 ] && [ "${NVM_NO_COLORS-}" != '--no-colors' ]
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_curl_libz_support() {
|
nvm_curl_libz_support() {
|
||||||
@@ -149,7 +149,8 @@ nvm_download() {
|
|||||||
")
|
")
|
||||||
|
|
||||||
if [ -n "${NVM_AUTH_HEADER:-}" ]; then
|
if [ -n "${NVM_AUTH_HEADER:-}" ]; then
|
||||||
ARGS="${ARGS} --header \"${NVM_AUTH_HEADER}\""
|
sanitized_header=$(nvm_sanitize_auth_header "${NVM_AUTH_HEADER}")
|
||||||
|
ARGS="${ARGS} --header \"${sanitized_header}\""
|
||||||
fi
|
fi
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
eval wget $ARGS
|
eval wget $ARGS
|
||||||
@@ -758,6 +759,11 @@ nvm_version() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
VERSION="$(nvm_ls "${PATTERN}" | command tail -1)"
|
VERSION="$(nvm_ls "${PATTERN}" | command tail -1)"
|
||||||
|
case "${VERSION}" in
|
||||||
|
system[[:blank:]]*)
|
||||||
|
VERSION='system'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
if [ -z "${VERSION}" ] || [ "_${VERSION}" = "_N/A" ]; then
|
if [ -z "${VERSION}" ] || [ "_${VERSION}" = "_N/A" ]; then
|
||||||
nvm_echo "N/A"
|
nvm_echo "N/A"
|
||||||
return 3
|
return 3
|
||||||
@@ -781,6 +787,15 @@ nvm_remote_version() {
|
|||||||
else
|
else
|
||||||
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" | command tail -1)"
|
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" | command tail -1)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "${PATTERN}" ] && [ "_${VERSION}" != "_N/A" ] && ! nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null; then
|
||||||
|
local VERSION_NUM
|
||||||
|
VERSION_NUM="$(nvm_echo "${VERSION}" | command awk '{print $1}')"
|
||||||
|
if ! nvm_echo "${VERSION_NUM}" | nvm_grep -q "${PATTERN}"; then
|
||||||
|
VERSION='N/A'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "${NVM_VERSION_ONLY-}" ]; then
|
if [ -n "${NVM_VERSION_ONLY-}" ]; then
|
||||||
command awk 'BEGIN {
|
command awk 'BEGIN {
|
||||||
n = split(ARGV[1], a);
|
n = split(ARGV[1], a);
|
||||||
@@ -969,13 +984,18 @@ nvm_strip_path() {
|
|||||||
nvm_err '${NVM_DIR} not set!'
|
nvm_err '${NVM_DIR} not set!'
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
command printf %s "${1-}" | command awk -v NVM_DIR="${NVM_DIR}" -v RS=: '
|
local RESULT
|
||||||
|
RESULT="$(command printf %s "${1-}" | command awk -v NVM_DIR="${NVM_DIR}" -v RS=: '
|
||||||
index($0, NVM_DIR) == 1 {
|
index($0, NVM_DIR) == 1 {
|
||||||
path = substr($0, length(NVM_DIR) + 1)
|
path = substr($0, length(NVM_DIR) + 1)
|
||||||
if (path ~ "^(/versions/[^/]*)?/[^/]*'"${2-}"'.*$") { next }
|
if (path ~ "^(/versions/[^/]*)?/[^/]*'"${2-}"'.*$") { next }
|
||||||
}
|
}
|
||||||
# The final RT will contain a colon if the input has a trailing colon, or a null string otherwise
|
{ printf "%s%s", sep, $0; sep=RS }')"
|
||||||
{ printf "%s%s", sep, $0; sep=RS } END { printf "%s", RT }'
|
# mawk does not support RT, so preserve trailing colon manually
|
||||||
|
case "${1-}" in
|
||||||
|
*:) command printf '%s:' "${RESULT}" ;;
|
||||||
|
*) command printf '%s' "${RESULT}" ;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_change_path() {
|
nvm_change_path() {
|
||||||
@@ -1448,6 +1468,18 @@ nvm_ls() {
|
|||||||
PATTERN="${PATTERN}-"
|
PATTERN="${PATTERN}-"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
local ALIAS_TARGET
|
||||||
|
ALIAS_TARGET="$(nvm_resolve_alias "${PATTERN}" 2>/dev/null || nvm_echo)"
|
||||||
|
if [ "_${ALIAS_TARGET}" = '_system' ] && (nvm_has_system_iojs || nvm_has_system_node); then
|
||||||
|
local SYSTEM_VERSION
|
||||||
|
SYSTEM_VERSION="$(nvm deactivate >/dev/null 2>&1 && node -v 2>/dev/null)"
|
||||||
|
if [ -n "${SYSTEM_VERSION}" ]; then
|
||||||
|
nvm_echo "system ${SYSTEM_VERSION}"
|
||||||
|
else
|
||||||
|
nvm_echo "system"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
fi
|
||||||
if nvm_resolve_local_alias "${PATTERN}"; then
|
if nvm_resolve_local_alias "${PATTERN}"; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@@ -1551,13 +1583,24 @@ nvm_ls() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${NVM_ADD_SYSTEM-}" = true ]; then
|
if [ "${NVM_ADD_SYSTEM-}" = true ]; then
|
||||||
|
local SYSTEM_VERSION
|
||||||
|
SYSTEM_VERSION="$(nvm deactivate >/dev/null 2>&1 && node -v 2>/dev/null)"
|
||||||
case "${PATTERN}" in
|
case "${PATTERN}" in
|
||||||
'' | v)
|
'' | v)
|
||||||
VERSIONS="${VERSIONS}
|
if [ -n "${SYSTEM_VERSION}" ]; then
|
||||||
|
VERSIONS="${VERSIONS}
|
||||||
|
system ${SYSTEM_VERSION}"
|
||||||
|
else
|
||||||
|
VERSIONS="${VERSIONS}
|
||||||
system"
|
system"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
system)
|
system)
|
||||||
VERSIONS="system"
|
if [ -n "${SYSTEM_VERSION}" ]; then
|
||||||
|
VERSIONS="system ${SYSTEM_VERSION}"
|
||||||
|
else
|
||||||
|
VERSIONS="system"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@@ -1899,6 +1942,7 @@ BEGIN {
|
|||||||
|
|
||||||
fmt_latest_lts = has_colors && latest_lts_color ? ("\033[" latest_lts_color " (Latest LTS: %s)\033[0m") : " (Latest LTS: %s)";
|
fmt_latest_lts = has_colors && latest_lts_color ? ("\033[" latest_lts_color " (Latest LTS: %s)\033[0m") : " (Latest LTS: %s)";
|
||||||
fmt_old_lts = has_colors && old_lts_color ? ("\033[" old_lts_color " (LTS: %s)\033[0m") : " (LTS: %s)";
|
fmt_old_lts = has_colors && old_lts_color ? ("\033[" old_lts_color " (LTS: %s)\033[0m") : " (LTS: %s)";
|
||||||
|
fmt_system_target = has_colors && system_color ? (" (\033[" system_color "-> %s\033[0m)") : " (-> %s)";
|
||||||
|
|
||||||
split(remote_versions, lines, "|");
|
split(remote_versions, lines, "|");
|
||||||
split(installed_versions, installed, "|");
|
split(installed_versions, installed, "|");
|
||||||
@@ -1930,6 +1974,8 @@ BEGIN {
|
|||||||
|
|
||||||
if (cols == 1) {
|
if (cols == 1) {
|
||||||
formatted = sprintf(fmt_version, version);
|
formatted = sprintf(fmt_version, version);
|
||||||
|
} else if (version == "system" && cols >= 2) {
|
||||||
|
formatted = sprintf((fmt_version fmt_system_target), version, fields[2]);
|
||||||
} else if (cols == 2) {
|
} else if (cols == 2) {
|
||||||
formatted = sprintf((fmt_version padding fmt_old_lts), version, fields[2]);
|
formatted = sprintf((fmt_version padding fmt_old_lts), version, fields[2]);
|
||||||
} else if (cols == 3 && fields[3] == "*") {
|
} else if (cols == 3 && fields[3] == "*") {
|
||||||
@@ -2633,18 +2679,24 @@ nvm_install_source() {
|
|||||||
NVM_OS="$(nvm_get_os)"
|
NVM_OS="$(nvm_get_os)"
|
||||||
|
|
||||||
local make
|
local make
|
||||||
make='make'
|
|
||||||
local MAKE_CXX
|
local MAKE_CXX
|
||||||
|
# For old Node.js versions (< 0.12), explicitly set SHELL=/bin/sh to avoid
|
||||||
|
# issues with zsh's strict glob handling in Makefiles with unquoted globs
|
||||||
|
local MAKE_SHELL_OVERRIDE
|
||||||
|
if nvm_version_greater "0.12.0" "${VERSION}"; then
|
||||||
|
MAKE_SHELL_OVERRIDE=' SHELL=/bin/sh'
|
||||||
|
fi
|
||||||
|
make="make${MAKE_SHELL_OVERRIDE-}"
|
||||||
case "${NVM_OS}" in
|
case "${NVM_OS}" in
|
||||||
'freebsd' | 'openbsd')
|
'freebsd' | 'openbsd')
|
||||||
make='gmake'
|
make="gmake${MAKE_SHELL_OVERRIDE-}"
|
||||||
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
|
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
|
||||||
;;
|
;;
|
||||||
'darwin')
|
'darwin')
|
||||||
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
|
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
|
||||||
;;
|
;;
|
||||||
'aix')
|
'aix')
|
||||||
make='gmake'
|
make="gmake${MAKE_SHELL_OVERRIDE-}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to "$(nvm_clang_version)" 3.5; then
|
if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to "$(nvm_clang_version)" 3.5; then
|
||||||
@@ -3699,7 +3751,13 @@ nvm() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if ! nvm_is_version_installed "${VERSION}"; then
|
if ! nvm_is_version_installed "${VERSION}"; then
|
||||||
nvm_err "${VERSION} version is not installed..."
|
local REQUESTED_VERSION
|
||||||
|
REQUESTED_VERSION="${PATTERN}"
|
||||||
|
if [ "_${VERSION}" != "_N/A" ] && [ "_${VERSION}" != "_${PATTERN}" ]; then
|
||||||
|
nvm_err "Version '${VERSION}' (inferred from ${PATTERN}) is not installed."
|
||||||
|
else
|
||||||
|
nvm_err "Version '${REQUESTED_VERSION}' is not installed."
|
||||||
|
fi
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -4439,7 +4497,7 @@ nvm() {
|
|||||||
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
|
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
|
||||||
;;
|
;;
|
||||||
"--version" | "-v")
|
"--version" | "-v")
|
||||||
nvm_echo '0.40.3'
|
nvm_echo '0.40.4'
|
||||||
;;
|
;;
|
||||||
"unload")
|
"unload")
|
||||||
nvm deactivate >/dev/null 2>&1
|
nvm deactivate >/dev/null 2>&1
|
||||||
@@ -4515,9 +4573,9 @@ nvm_get_default_packages() {
|
|||||||
NVM_DEFAULT_PACKAGE_FILE="${NVM_DIR}/default-packages"
|
NVM_DEFAULT_PACKAGE_FILE="${NVM_DIR}/default-packages"
|
||||||
if [ -f "${NVM_DEFAULT_PACKAGE_FILE}" ]; then
|
if [ -f "${NVM_DEFAULT_PACKAGE_FILE}" ]; then
|
||||||
command awk -v filename="${NVM_DEFAULT_PACKAGE_FILE}" '
|
command awk -v filename="${NVM_DEFAULT_PACKAGE_FILE}" '
|
||||||
/^[[:space:]]*#/ { next } # Skip lines that begin with #
|
/^[ \t]*#/ { next } # Skip lines that begin with #
|
||||||
/^[[:space:]]*$/ { next } # Skip empty lines
|
/^[ \t]*$/ { next } # Skip empty lines
|
||||||
/[[:space:]]/ && !/^[[:space:]]*#/ {
|
/[ \t]/ && !/^[ \t]*#/ {
|
||||||
print "Only one package per line is allowed in `" filename "`. Please remove any lines with multiple space-separated values." > "/dev/stderr"
|
print "Only one package per line is allowed in `" filename "`. Please remove any lines with multiple space-separated values." > "/dev/stderr"
|
||||||
err = 1
|
err = 1
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nvm",
|
"name": "nvm",
|
||||||
"version": "0.40.3",
|
"version": "0.40.4",
|
||||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||||
"directories": {
|
"directories": {
|
||||||
"test": "test"
|
"test": "test"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ die() { echo "$@" ; exit 1; }
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../../.. && pwd)"
|
export NVM_DIR="$(cd ../../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. "${NVM_DIR}/nvm.sh"
|
\. "${NVM_DIR}/nvm.sh"
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
@@ -14,11 +15,11 @@ fi
|
|||||||
nvm alias test-stable-1 0.0.2 || die '`nvm alias test-stable-1 0.0.2` failed'
|
nvm alias test-stable-1 0.0.2 || die '`nvm alias test-stable-1 0.0.2` failed'
|
||||||
|
|
||||||
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
||||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2)'
|
EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2 *)'
|
||||||
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '$OUTPUT'"
|
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '$OUTPUT'"
|
||||||
|
|
||||||
nvm alias test-stable-1 0.0.1 || die '`nvm alias test-stable-1 0.0.1` failed'
|
nvm alias test-stable-1 0.0.1 || die '`nvm alias test-stable-1 0.0.1` failed'
|
||||||
|
|
||||||
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
||||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1)'
|
EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1 *)'
|
||||||
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '$OUTPUT'"
|
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '$OUTPUT'"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
[ $(nvm alias test-stable-1 | wc -l) = '2' ]
|
[ $(nvm alias test-stable-1 | wc -l) = '2' ]
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
@@ -9,18 +10,18 @@ NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
|||||||
|
|
||||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)" \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F "stable -> $EXPECTED_STABLE (-> $STABLE_VERSION *) (default)" \
|
||||||
|| die "nvm alias did not contain the default local stable node version; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the default local stable node version; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "node -> stable (-> $STABLE_VERSION) (default)" \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F "node -> stable (-> $STABLE_VERSION *) (default)" \
|
||||||
|| die "nvm alias did not contain the default local stable node version under 'node'; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the default local stable node version under 'node'; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)" \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F "unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION *) (default)" \
|
||||||
|| die "nvm alias did not contain the default local unstable node version; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the default local unstable node version; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)"
|
EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)"
|
||||||
IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")"
|
IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)" \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION *) (default)" \
|
||||||
|| die "nvm alias did not contain the default local iojs version; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the default local iojs version; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
@@ -34,16 +35,16 @@ nvm alias iojs unstable
|
|||||||
|
|
||||||
NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)" \
|
echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION *)" \
|
||||||
|| die "nvm alias did not contain the overridden 'stable' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'stable' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)" \
|
echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION *)" \
|
||||||
|| die "nvm alias did not contain the overridden 'unstable' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'unstable' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION)" \
|
echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION *)" \
|
||||||
|| die "nvm alias did not contain the overridden 'node' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'node' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION)" \
|
echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION *)" \
|
||||||
|| die "nvm alias did not contain the overridden 'iojs' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'iojs' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|||||||
@@ -1,48 +1,49 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)"
|
NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1 *)' \
|
||||||
|| die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2 *)' \
|
||||||
|| die "did not find test-stable-2 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-2 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-3 -> 0.0.3 (-> v0.0.3)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-3 -> 0.0.3 (-> v0.0.3 *)' \
|
||||||
|| die "did not find test-stable-3 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-3 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-4 -> 0.0.4 (-> v0.0.4)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-4 -> 0.0.4 (-> v0.0.4 *)' \
|
||||||
|| die "did not find test-stable-4 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-4 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-5 -> 0.0.5 (-> v0.0.5)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-5 -> 0.0.5 (-> v0.0.5 *)' \
|
||||||
|| die "did not find test-stable-5 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-5 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-6 -> 0.0.6 (-> v0.0.6)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-6 -> 0.0.6 (-> v0.0.6 *)' \
|
||||||
|| die "did not find test-stable-6 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-6 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-7 -> 0.0.7 (-> v0.0.7)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-7 -> 0.0.7 (-> v0.0.7 *)' \
|
||||||
|| die "did not find test-stable-7 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-7 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-8 -> 0.0.8 (-> v0.0.8)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-8 -> 0.0.8 (-> v0.0.8 *)' \
|
||||||
|| die "did not find test-stable-8 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-8 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-9 -> 0.0.9 (-> v0.0.9)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-9 -> 0.0.9 (-> v0.0.9 *)' \
|
||||||
|| die "did not find test-stable-9 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-9 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-10 -> 0.0.10 (-> v0.0.10)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-10 -> 0.0.10 (-> v0.0.10 *)' \
|
||||||
|| die "did not find test-stable-10 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-10 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-1 -> 0.1.1 (-> v0.1.1)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-1 -> 0.1.1 (-> v0.1.1 *)' \
|
||||||
|| die "did not find test-unstable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-2 -> 0.1.2 (-> v0.1.2)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-2 -> 0.1.2 (-> v0.1.2 *)' \
|
||||||
|| die "did not find test-unstable-2 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-2 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-3 -> 0.1.3 (-> v0.1.3)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-3 -> 0.1.3 (-> v0.1.3 *)' \
|
||||||
|| die "did not find test-unstable-3 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-3 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-4 -> 0.1.4 (-> v0.1.4)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-4 -> 0.1.4 (-> v0.1.4 *)' \
|
||||||
|| die "did not find test-unstable-4 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-4 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-5 -> 0.1.5 (-> v0.1.5)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-5 -> 0.1.5 (-> v0.1.5 *)' \
|
||||||
|| die "did not find test-unstable-5 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-5 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-6 -> 0.1.6 (-> v0.1.6)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-6 -> 0.1.6 (-> v0.1.6 *)' \
|
||||||
|| die "did not find test-unstable-6 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-6 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-7 -> 0.1.7 (-> v0.1.7)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-7 -> 0.1.7 (-> v0.1.7 *)' \
|
||||||
|| die "did not find test-unstable-7 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-7 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-8 -> 0.1.8 (-> v0.1.8)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-8 -> 0.1.8 (-> v0.1.8 *)' \
|
||||||
|| die "did not find test-unstable-8 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-8 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-9 -> 0.1.9 (-> v0.1.9)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-9 -> 0.1.9 (-> v0.1.9 *)' \
|
||||||
|| die "did not find test-unstable-9 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-9 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-10 -> 0.1.10 (-> v0.1.10)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-10 -> 0.1.10 (-> v0.1.10 *)' \
|
||||||
|| die "did not find test-unstable-10 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-unstable-10 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../../nvm.sh
|
\. ../../../../nvm.sh
|
||||||
|
|
||||||
ALIAS="$(nvm_resolve_alias loopback | strip_colors)"
|
ALIAS="$(nvm_resolve_alias loopback | strip_colors)"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../../nvm.sh
|
\. ../../../../nvm.sh
|
||||||
|
|
||||||
ALIAS="$(nvm_resolve_local_alias loopback | strip_colors)"
|
ALIAS="$(nvm_resolve_local_alias loopback | strip_colors)"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../../nvm.sh
|
\. ../../../../nvm.sh
|
||||||
\. ../../../common.sh
|
\. ../../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../../nvm.sh
|
\. ../../../../nvm.sh
|
||||||
|
|
||||||
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"
|
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../../nvm.sh
|
\. ../../../../nvm.sh
|
||||||
|
|
||||||
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"
|
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed"
|
nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed"
|
||||||
@@ -13,7 +14,7 @@ nvm_ensure_default_set 0.3 || die "'nvm_ensure_default_set' with an existing def
|
|||||||
nvm unalias default || die "'nvm unalias default' failed"
|
nvm unalias default || die "'nvm unalias default' failed"
|
||||||
|
|
||||||
OUTPUT="$(nvm_ensure_default_set 0.2)"
|
OUTPUT="$(nvm_ensure_default_set 0.2)"
|
||||||
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)"
|
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10 *)"
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
|
|
||||||
[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
|
|
||||||
nvm_get_colors(){
|
nvm_get_colors(){
|
||||||
echo "0;95m"
|
echo "0;95m"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
@@ -10,6 +11,8 @@ die () {
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
|
|
||||||
nvm_get_colors(){
|
nvm_get_colors(){
|
||||||
echo "0;95m"
|
echo "0;95m"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
@@ -8,6 +9,9 @@ die () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
|
|
||||||
# # # expecting in red and two grays:
|
# # # expecting in red and two grays:
|
||||||
OUTPUT=$(echo $(nvm_print_formatted_alias fakealias fakedest) | awk '{ print substr($0, 1, 21); }')
|
OUTPUT=$(echo $(nvm_print_formatted_alias fakealias fakedest) | awk '{ print substr($0, 1, 21); }')
|
||||||
EXPECTED_OUTPUT="$(command printf %b "\033[0;31mfakealias\033[0m ")"
|
EXPECTED_OUTPUT="$(command printf %b "\033[0;31mfakealias\033[0m ")"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ die () { echo "$@" ; exit 1; }
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../../.. && pwd)"
|
export NVM_DIR="$(cd ../../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. "${NVM_DIR}/nvm.sh"
|
\. "${NVM_DIR}/nvm.sh"
|
||||||
|
|
||||||
EXIT_CODE=$(nvm_resolve_alias ; echo $?)
|
EXIT_CODE=$(nvm_resolve_alias ; echo $?)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
EXIT_CODE=$(nvm_resolve_local_alias ; echo $?)
|
EXIT_CODE=$(nvm_resolve_local_alias ; echo $?)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../../.. && pwd)"
|
export NVM_DIR="$(cd ../../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
nvm which nonexistent_version
|
nvm which nonexistent_version
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
die () { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
cleanup() {
|
||||||
|
rm -f "$(nvm_alias_path)/default"
|
||||||
|
if [ -n "${SYSTEM_DIR-}" ]; then
|
||||||
|
rm -rf "${SYSTEM_DIR}"
|
||||||
|
fi
|
||||||
|
if [ -n "${ORIG_PATH-}" ]; then
|
||||||
|
PATH="${ORIG_PATH}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm_make_alias default system
|
||||||
|
|
||||||
|
ORIG_PATH="${PATH}"
|
||||||
|
SYSTEM_DIR="$(mktemp -d)"
|
||||||
|
cat > "${SYSTEM_DIR}/node" <<'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
echo v0.0.0
|
||||||
|
EOF
|
||||||
|
chmod +x "${SYSTEM_DIR}/node"
|
||||||
|
PATH="${SYSTEM_DIR}:${PATH}"
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
EXPECTED_OUTPUT="$(command which node)"
|
||||||
|
set +ex # since stderr is needed
|
||||||
|
OUTPUT="$(nvm which default 2>&1)"
|
||||||
|
set -ex
|
||||||
|
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system via alias for nvm which. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
|
cleanup
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
cleanup () {
|
||||||
|
rm -f "$(nvm_alias_path)/default"
|
||||||
|
unset -f nvm_has_system_node node
|
||||||
|
}
|
||||||
|
|
||||||
|
\. ../../../nvm.sh
|
||||||
|
\. ../../common.sh
|
||||||
|
|
||||||
|
nvm_make_alias default system
|
||||||
|
nvm_has_system_node() { return 0; }
|
||||||
|
node() { command printf 'v0.0.0'; }
|
||||||
|
|
||||||
|
OUTPUT="$(nvm ls default | strip_colors)"
|
||||||
|
echo "${OUTPUT}" | command grep -q 'system' \
|
||||||
|
|| die "Could not list system via alias. Got >${OUTPUT}<"
|
||||||
|
echo "${OUTPUT}" | command grep -q 'v0.0.0' \
|
||||||
|
|| die "Could not list system version via alias. Got >${OUTPUT}<"
|
||||||
|
|
||||||
|
cleanup
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
nvm ls nonexistent_version
|
nvm ls nonexistent_version
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
nvm ls io
|
nvm ls io
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
nvm ls node_
|
nvm ls node_
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
@@ -38,7 +39,13 @@ iojs-v0.10.2
|
|||||||
v0.12.9
|
v0.12.9
|
||||||
v0.12.87"
|
v0.12.87"
|
||||||
if nvm_has_system_node || nvm_has_system_iojs; then
|
if nvm_has_system_node || nvm_has_system_iojs; then
|
||||||
EXPECTED_OUTPUT="${EXPECTED_OUTPUT}
|
SYSTEM_VERSION="$(nvm deactivate >/dev/null 2>&1 && node -v 2>/dev/null)"
|
||||||
|
if [ -n "${SYSTEM_VERSION}" ]; then
|
||||||
|
EXPECTED_OUTPUT="${EXPECTED_OUTPUT}
|
||||||
|
system ${SYSTEM_VERSION}"
|
||||||
|
else
|
||||||
|
EXPECTED_OUTPUT="${EXPECTED_OUTPUT}
|
||||||
system"
|
system"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<"
|
[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../../.. && pwd)"
|
export NVM_DIR="$(cd ../../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
@@ -36,7 +37,13 @@ iojs-v0.10.2
|
|||||||
v0.12.9
|
v0.12.9
|
||||||
v0.12.87"
|
v0.12.87"
|
||||||
if nvm_has_system_node || nvm_has_system_iojs; then
|
if nvm_has_system_node || nvm_has_system_iojs; then
|
||||||
EXPECTED_OUTPUT="${EXPECTED_OUTPUT}
|
SYSTEM_VERSION="$(nvm deactivate >/dev/null 2>&1 && node -v 2>/dev/null)"
|
||||||
|
if [ -n "${SYSTEM_VERSION}" ]; then
|
||||||
|
EXPECTED_OUTPUT="${EXPECTED_OUTPUT}
|
||||||
|
system ${SYSTEM_VERSION}"
|
||||||
|
else
|
||||||
|
EXPECTED_OUTPUT="${EXPECTED_OUTPUT}
|
||||||
system"
|
system"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<"
|
[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ set -ex
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../.. && pwd)"
|
export NVM_DIR="$(cd ../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm alias test v0.1.2
|
nvm alias test v0.1.2
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ die () { echo "$@" ; exit 1; }
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../.. && pwd)"
|
export NVM_DIR="$(cd ../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm deactivate 2>&1
|
nvm deactivate 2>&1
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ die () { echo "$@" ; exit 1; }
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../.. && pwd)"
|
export NVM_DIR="$(cd ../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ cleanup () {
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../.. && pwd)"
|
export NVM_DIR="$(cd ../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ die () { echo "$@" ; exit 1; }
|
|||||||
|
|
||||||
export NVM_DIR="$(cd ../.. && pwd)"
|
export NVM_DIR="$(cd ../.. && pwd)"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
set +ex # needed for stderr
|
set +ex # needed for stderr
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ ALIAS_PATH="../../alias"
|
|||||||
|
|
||||||
echo v0.1.2 > "${ALIAS_PATH}/test"
|
echo v0.1.2 > "${ALIAS_PATH}/test"
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm unalias test
|
nvm unalias test
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
\. ../../nvm.sh
|
||||||
|
\. ../common.sh
|
||||||
|
|
||||||
|
VERSION='v0.0.1'
|
||||||
|
PATTERN='0.0'
|
||||||
|
|
||||||
|
mkdir -p "${NVM_DIR}/${VERSION}"
|
||||||
|
|
||||||
|
set +ex # needed for stderr
|
||||||
|
RETURN_MESSAGE="$(nvm uninstall "${PATTERN}" 2>&1 || echo)"
|
||||||
|
set -ex
|
||||||
|
EXPECTED_MESSAGE="Version '${VERSION}' (inferred from ${PATTERN}) is not installed."
|
||||||
|
|
||||||
|
[ "${RETURN_MESSAGE}" = "${EXPECTED_MESSAGE}" ]
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
\. ../../nvm.sh
|
||||||
|
\. ../common.sh
|
||||||
|
|
||||||
|
set +ex # needed for stderr
|
||||||
|
RETURN_MESSAGE="$(nvm uninstall 22 2>&1 || echo)"
|
||||||
|
set -ex
|
||||||
|
EXPECTED_MESSAGE="Version '22' is not installed."
|
||||||
|
|
||||||
|
[ "${RETURN_MESSAGE}" = "${EXPECTED_MESSAGE}" ]
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}"
|
|||||||
env | grep -v PATH= | grep -v IFS= | grep -v NVM_ | grep -v TRAVIS_ | sort >> "${BEFORE}"
|
env | grep -v PATH= | grep -v IFS= | grep -v NVM_ | grep -v TRAVIS_ | sort >> "${BEFORE}"
|
||||||
|
|
||||||
set +e # TODO: fix
|
set +e # TODO: fix
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ cleanup() {
|
|||||||
rm -rf "$(nvm_alias_path)/foo"
|
rm -rf "$(nvm_alias_path)/foo"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm_make_alias foo foo
|
nvm_make_alias foo foo
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ cleanup() {
|
|||||||
rm -rf "$(nvm_version_path "iojs-${VERSION}")"
|
rm -rf "$(nvm_version_path "iojs-${VERSION}")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm deactivate || die "unable to deactivate; current: >$(nvm current)<"
|
nvm deactivate || die "unable to deactivate; current: >$(nvm current)<"
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ cleanup() {
|
|||||||
}
|
}
|
||||||
die() { echo "$@" ; cleanup ; exit 1; }
|
die() { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm_has_system_node() { return 0; }
|
nvm_has_system_node() { return 0; }
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
export NVM_SYMLINK_CURRENT=true
|
export NVM_SYMLINK_CURRENT=true
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
\. ../common.sh
|
\. ../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ cleanup() {
|
|||||||
rm .nvmrc
|
rm .nvmrc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
# normal .nvmrc
|
# normal .nvmrc
|
||||||
|
|||||||
38
test/fast/Running 'nvm use' should respect alias pointing to system
Executable file
38
test/fast/Running 'nvm use' should respect alias pointing to system
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
die () { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
cleanup () {
|
||||||
|
rm -f "$(nvm_alias_path)/default"
|
||||||
|
if [ -n "${SYSTEM_DIR-}" ]; then
|
||||||
|
rm -rf "${SYSTEM_DIR}"
|
||||||
|
fi
|
||||||
|
if [ -n "${ORIG_PATH-}" ]; then
|
||||||
|
PATH="${ORIG_PATH}"
|
||||||
|
fi
|
||||||
|
unset -f nvm_print_npm_version
|
||||||
|
}
|
||||||
|
|
||||||
|
\. ../../nvm.sh
|
||||||
|
|
||||||
|
nvm_make_alias default system
|
||||||
|
|
||||||
|
ORIG_PATH="${PATH}"
|
||||||
|
SYSTEM_VERSION="v0.0.0"
|
||||||
|
SYSTEM_DIR="$(mktemp -d)"
|
||||||
|
cat > "${SYSTEM_DIR}/node" <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
command printf '%s\n' "${SYSTEM_VERSION}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${SYSTEM_DIR}/node"
|
||||||
|
PATH="${SYSTEM_DIR}:${PATH}"
|
||||||
|
nvm_print_npm_version() { command printf ' (npm v1.2.3)'; }
|
||||||
|
|
||||||
|
EXPECTED_OUTPUT="Now using system version of node: ${SYSTEM_VERSION}$(nvm_print_npm_version)"
|
||||||
|
set +ex # since stderr is needed
|
||||||
|
OUTPUT="$(nvm use default 2>&1)"
|
||||||
|
set -ex
|
||||||
|
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system via alias. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
|
cleanup
|
||||||
43
test/fast/Running 'nvm use' should respect system in .nvmrc
Executable file
43
test/fast/Running 'nvm use' should respect system in .nvmrc
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
die () { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
cleanup () {
|
||||||
|
rm -f .nvmrc
|
||||||
|
if [ -f .nvmrc.orig ]; then
|
||||||
|
mv .nvmrc.orig .nvmrc
|
||||||
|
fi
|
||||||
|
if [ -n "${SYSTEM_DIR-}" ]; then
|
||||||
|
rm -rf "${SYSTEM_DIR}"
|
||||||
|
fi
|
||||||
|
if [ -n "${ORIG_PATH-}" ]; then
|
||||||
|
PATH="${ORIG_PATH}"
|
||||||
|
fi
|
||||||
|
unset -f nvm_print_npm_version
|
||||||
|
}
|
||||||
|
|
||||||
|
\. ../../nvm.sh
|
||||||
|
|
||||||
|
if [ -f .nvmrc ]; then mv .nvmrc .nvmrc.orig; fi
|
||||||
|
printf 'system\n' > .nvmrc
|
||||||
|
ORIG_PATH="${PATH}"
|
||||||
|
SYSTEM_VERSION="v0.0.0"
|
||||||
|
SYSTEM_DIR="$(mktemp -d)"
|
||||||
|
cat > "${SYSTEM_DIR}/node" <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
command printf '%s\n' "${SYSTEM_VERSION}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${SYSTEM_DIR}/node"
|
||||||
|
PATH="${SYSTEM_DIR}:${PATH}"
|
||||||
|
nvm_print_npm_version() { command printf ' (npm v1.2.3)'; }
|
||||||
|
|
||||||
|
NVMRC_PATH="${PWD}/.nvmrc"
|
||||||
|
EXPECTED_OUTPUT="Found '${NVMRC_PATH}' with version <system>
|
||||||
|
Now using system version of node: ${SYSTEM_VERSION}$(nvm_print_npm_version)"
|
||||||
|
set +ex # since stderr is needed
|
||||||
|
OUTPUT="$(nvm use 2>&1)"
|
||||||
|
set -ex
|
||||||
|
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system via .nvmrc. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
|
cleanup
|
||||||
24
test/fast/Running 'nvm-exec' should display required node version
Executable file
24
test/fast/Running 'nvm-exec' should display required node version
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
: nvm.sh
|
||||||
|
\. ../../nvm.sh
|
||||||
|
|
||||||
|
cleanup() { rm -f .nvmrc; }
|
||||||
|
die () { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
|
||||||
|
NVM_TEST_VERSION=v0.42
|
||||||
|
|
||||||
|
# Write it to nvmrc
|
||||||
|
echo "$NVM_TEST_VERSION" > .nvmrc
|
||||||
|
|
||||||
|
OUTPUT="$(../../nvm-exec 2>&1)";
|
||||||
|
EXPECTED="N/A: version \"${NVM_TEST_VERSION}\" is not yet installed.
|
||||||
|
|
||||||
|
You need to run \`nvm install ${NVM_TEST_VERSION}\` to install and use it.
|
||||||
|
No NODE_VERSION provided; no .nvmrc file found";
|
||||||
|
|
||||||
|
# Skip install, we want to test the error message
|
||||||
|
[ "${EXPECTED}" = "${OUTPUT}" ] || die "expected >${EXPECTED}<, got >${OUTPUT}<"
|
||||||
|
|
||||||
|
cleanup
|
||||||
@@ -11,6 +11,7 @@ cleanup() {
|
|||||||
echo "Tested nvm_echo_with_colors"
|
echo "Tested nvm_echo_with_colors"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
OUTPUT="$(nvm_echo_with_colors "\033[0;36mCyan-colored text")"
|
OUTPUT="$(nvm_echo_with_colors "\033[0;36mCyan-colored text")"
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ cleanup() {
|
|||||||
echo "Tested nvm_err_with_colors"
|
echo "Tested nvm_err_with_colors"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
set +ex
|
set +ex
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
@@ -10,6 +11,8 @@ die () {
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
|
|
||||||
nvm_get_colors(){
|
nvm_get_colors(){
|
||||||
echo "0;95m"
|
echo "0;95m"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
set -e
|
#set -e #nvm use system returns 127 and No system set message
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
# echo "$@" ;
|
# echo "$@" ;
|
||||||
@@ -21,10 +22,12 @@ if [ -n ${NVM_COLORS} ]; then
|
|||||||
unset NVM_COLORS
|
unset NVM_COLORS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
|
|
||||||
# default system color
|
# default system color
|
||||||
nvm use system
|
nvm use system
|
||||||
OUTPUT=$(nvm_print_versions system)
|
OUTPUT=$(nvm_print_versions system)
|
||||||
FORMAT="\033[0;32m-> %12s\033[0m"
|
FORMAT="\033[0;33m%15s\033[0m"
|
||||||
VERSION='system'
|
VERSION='system'
|
||||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||||
|
|
||||||
@@ -34,7 +37,7 @@ nvm_ls_current() { echo "current";}
|
|||||||
|
|
||||||
# default current color
|
# default current color
|
||||||
OUTPUT=$(nvm_print_versions current)
|
OUTPUT=$(nvm_print_versions current)
|
||||||
FORMAT="\033[0;32m-> %12s\033[0m"
|
FORMAT="\033[0;32m->%13s\033[0m"
|
||||||
VERSION="current"
|
VERSION="current"
|
||||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||||
|
|
||||||
@@ -43,7 +46,7 @@ EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
|||||||
# custom current color
|
# custom current color
|
||||||
nvm set-colors YCMGR
|
nvm set-colors YCMGR
|
||||||
OUTPUT=$(nvm_print_versions current)
|
OUTPUT=$(nvm_print_versions current)
|
||||||
FORMAT="\033[1;35m-> %12s\033[0m"
|
FORMAT="\033[1;35m->%13s\033[0m"
|
||||||
VERSION="current"
|
VERSION="current"
|
||||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
|
|
||||||
nvm
|
nvm
|
||||||
|
|||||||
@@ -3,5 +3,6 @@
|
|||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
set -- yes
|
set -- yes
|
||||||
|
: nvm.sh
|
||||||
\. ../../nvm.sh
|
\. ../../nvm.sh
|
||||||
[ "$1" = yes ]
|
[ "$1" = yes ]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
nvm_install_source() {
|
nvm_install_source() {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ cleanup() {
|
|||||||
mv "${NVM_DIR}/alias/lts-backup" "${NVM_DIR}/alias/lts"
|
mv "${NVM_DIR}/alias/lts-backup" "${NVM_DIR}/alias/lts"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
if [ -n "${NVM_COLORS-}" ]; then
|
if [ -n "${NVM_COLORS-}" ]; then
|
||||||
export TEMP_NVM_COLORS=NVM_COLORS
|
export TEMP_NVM_COLORS=NVM_COLORS
|
||||||
@@ -32,6 +33,8 @@ printf '%s\n' "$(cat "${LTS_NAMES_PATH}" | tail -n +1)" | while IFS= read -r LTS
|
|||||||
cp "${NVM_DIR}/alias/lts-backup/${LTS}" "${NVM_DIR}/alias/lts/"
|
cp "${NVM_DIR}/alias/lts-backup/${LTS}" "${NVM_DIR}/alias/lts/"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
|
|
||||||
nvm deactivate 2>/dev/null || die 'unable to deactivate'
|
nvm deactivate 2>/dev/null || die 'unable to deactivate'
|
||||||
|
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
@@ -66,12 +69,14 @@ printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
|
|||||||
INDEX=$(($INDEX + 1))
|
INDEX=$(($INDEX + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
|
nvm_has_colors() { return 1; }
|
||||||
OUTPUT="$(nvm ls-remote lts/ARGON 2>&1)"
|
OUTPUT="$(nvm ls-remote lts/ARGON 2>&1)"
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
|
nvm_has_colors() { return 0; }
|
||||||
[ $EXIT_CODE -eq 3 ] || die "nvm ls-remote lts/ARGON did not exit 3, got '${EXIT_CODE}'"
|
[ $EXIT_CODE -eq 3 ] || die "nvm ls-remote lts/ARGON did not exit 3, got '${EXIT_CODE}'"
|
||||||
|
|
||||||
EXPECTED_OUTPUT="LTS names must be lowercase
|
EXPECTED_OUTPUT="LTS names must be lowercase
|
||||||
N/A"
|
N/A *"
|
||||||
[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "nvm ls-remote lts/ARGON did not output expected error message; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<"
|
[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "nvm ls-remote lts/ARGON did not output expected error message; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ cleanup() {
|
|||||||
unset TEMP_NVM_COLORS
|
unset TEMP_NVM_COLORS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
# NVM_COLORS is not set
|
# NVM_COLORS is not set
|
||||||
if [ -n ${NVM_COLORS} ]; then
|
if [ -n ${NVM_COLORS} ]; then
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ cleanup() {
|
|||||||
unset -f nvm_remote_version
|
unset -f nvm_remote_version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
[ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"'
|
[ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"'
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user