clean up nodenv and node plugins

pull/1666/head
cornfeedhobo 2020-09-25 18:09:02 -05:00
parent 176abe43b5
commit 72f326ac78
No known key found for this signature in database
GPG Key ID: 724357093F994B26
4 changed files with 56 additions and 29 deletions

View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
# Bash completion support for nodenv
if _command_exists nodenv && [[ -r "$(dirname $(readlink -f $(which nodenv)))/../completions/nodenv.bash" ]] ; then
source "$(dirname $(readlink -f $(which nodenv)))/../completions/nodenv.bash"
fi

View File

@ -1,13 +1,17 @@
cite about-plugin
about-plugin 'Node.js helper functions'
# Ensure local modules are preferred in PATH
pathmunge "./node_modules/.bin" "after"
# Load after nodenv
# BASH_IT_LOAD_PRIORITY: 285
# Check that we have npm
out=$(command -v npm 2>&1) || return
# Check node version to ensure nodenv can find node
{ _command_exists node && node --version &>/dev/null ; } || return 0
# If not using nodenv, ensure global modules are in PATH
if [[ ! $out == *"nodenv/shims"* ]] ; then
pathmunge "$(npm config get prefix)/bin" "after"
fi
# Check npm version to ensure nodenv can find npm
{ _command_exists npm && npm --version &>/dev/null ; } || return 0
# Ensure global modules are in PATH
pathmunge "$(npm config get prefix)/bin"
# Ensure local modules are in PATH
pathmunge './node_modules/.bin'

View File

@ -1,7 +1,24 @@
cite about-plugin
about-plugin 'load nodenv, if you are using it'
export NODENV_ROOT="$HOME/.nodenv"
pathmunge "$NODENV_ROOT/bin"
# Load after basher
# BASH_IT_LOAD_PRIORITY: 275
[[ `which nodenv` ]] && eval "$(nodenv init - bash)"
# Don't modify the environment if we can't find the tool:
# - Check if in $PATH already
# - Check if installed manually to $NODENV_ROOT
# - Check if installed manually to $HOME
_command_exists nodenv ||
[[ -n "$NODENV_ROOT" && -x "$RBENV_ROOT/bin/nodenv" ]] ||
[[ -x "$HOME/.nodenv/bin/nodenv" ]] ||
return 0
# Set NODENV_ROOT, if not already set
export NODENV_ROOT="${NODENV_ROOT:-$(nodenv root)}"
# Add NODENV_ROOT/bin to PATH, if that's where it's installed
if ! _command_exists nodenv && [[ -x "$NODENV_ROOT/bin/nodenv" ]] ; then
pathmunge "$NODENV_ROOT/bin"
fi
eval "$(nodenv init - bash)"

View File

@ -134,21 +134,21 @@ function local_setup {
@test "helpers: enable the node plugin" {
run _enable-plugin "node"
assert_line -n 0 'node enabled with priority 250.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" "../plugins/available/node.plugin.bash"
assert_line -n 0 'node enabled with priority 285.'
assert_link_exist "$BASH_IT/enabled/285---node.plugin.bash" "../plugins/available/node.plugin.bash"
}
@test "helpers: enable the node plugin through the bash-it function" {
run bash-it enable plugin "node"
assert_line -n 0 'node enabled with priority 250.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_line -n 0 'node enabled with priority 285.'
assert_link_exist "$BASH_IT/enabled/285---node.plugin.bash"
}
@test "helpers: enable the node and nvm plugins through the bash-it function" {
run bash-it enable plugin "node" "nvm"
assert_line -n 0 'node enabled with priority 250.'
assert_line -n 0 'node enabled with priority 285.'
assert_line -n 1 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/285---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
}
@ -299,7 +299,7 @@ function local_setup {
assert_line -n 2 'todo.txt-cli enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/285---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/node.plugin.bash" ]
@ -311,8 +311,8 @@ function local_setup {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/285---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/285---node.plugin.bash"
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash"
@ -322,10 +322,10 @@ function local_setup {
run _bash-it-migrate
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/285---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/225----node.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/250----node.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/250----nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/aliases/enabled/250----todo.txt-cli.aliases.bash" ]
}
@ -424,22 +424,22 @@ function __migrate_all_components() {
assert_line -n 1 'nvm disabled.'
assert_line -n 2 'nvm enabled with priority 225.'
assert_line -n 3 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_line -n 4 'node enabled with priority 250.'
assert_line -n 4 'node enabled with priority 285.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/285---node.plugin.bash"
}
@test "helpers: verify that existing components are automatically migrated when something is disabled" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/285---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/285---node.plugin.bash"
run bash-it disable plugin "node"
assert_line -n 0 'Migrating plugin node.'
assert_line -n 1 'node disabled.'
assert_line -n 2 'node enabled with priority 250.'
assert_line -n 2 'node enabled with priority 285.'
assert_line -n 3 'Migrating plugin nvm.'
assert_line -n 4 'nvm disabled.'
assert_line -n 5 'nvm enabled with priority 225.'
@ -447,8 +447,8 @@ function __migrate_all_components() {
assert_line -n 7 'node disabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/285---node.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/285---node.plugin.bash" ]
}
@test "helpers: enable all plugins" {