pull/1990/merge
cornfeedhobo 2023-03-19 02:44:14 -07:00 committed by GitHub
commit 9c8ff3533b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 101 additions and 98 deletions

View File

@ -119,6 +119,7 @@ plugins/available/jump.plugin.bash
plugins/available/latex.plugin.bash
plugins/available/less-pretty-cat.plugin.bash
plugins/available/man.plugin.bash
plugins/available/nenv.plugin.bash
plugins/available/nginx.plugin.bash
plugins/available/node.plugin.bash
plugins/available/nodenv.plugin.bash

View File

@ -1,7 +1,8 @@
# shellcheck shell=bash
cite "about-completion"
about-completion "npm (Node Package Manager) completion"
if _command_exists npm; then
# Test `npm version` because *env tools create shim scripts that will be found in PATH
# but do not always resolve to a working install.
if _command_exists npm && npm --version &> /dev/null; then
eval "$(npm completion)"
fi

View File

@ -0,0 +1,15 @@
# shellcheck shell=bash
about-plugin 'Node.js environment management using https://github.com/ryuone/nenv'
# Load after basher
# BASH_IT_LOAD_PRIORITY: 260
export NENV_ROOT="${NENV_ROOT:-${HOME?}/.nenv}"
if [[ -d "${NENV_ROOT?}/bin" ]]; then
pathmunge "${NENV_ROOT?}/bin"
fi
if _command_exists nenv; then
eval "$(nenv init - bash)"
fi

View File

@ -1,14 +1,13 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'Node.js helper functions'
# Check that we have npm
_command_exists npm || return
# Load after *env plugins
# BASH_IT_LOAD_PRIORITY: 270
# Ensure local modules are preferred in PATH
pathmunge "./node_modules/.bin" "after"
pathmunge './node_modules/.bin' 'after'
# If not using nodenv, ensure global modules are in PATH
if [[ ! "$(type -p npm)" == *"nodenv/shims"* ]]; then
pathmunge "$(npm config get prefix)/bin" "after"
# If not using an *env tool, ensure global modules are in PATH
if [[ ! "$(type -p npm)" == *'/shims/npm' ]]; then
pathmunge "$(npm config get prefix)/bin" 'after'
fi

View File

@ -1,9 +1,14 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'load nodenv, if you are using it'
about-plugin 'Node.js environment management using https://github.com/nodenv/nodenv'
export NODENV_ROOT="$HOME/.nodenv"
pathmunge "$NODENV_ROOT/bin"
# Load after basher
# BASH_IT_LOAD_PRIORITY: 260
export NODENV_ROOT="${NODENV_ROOT:-${HOME?}/.nodenv}"
if [[ -d "${NODENV_ROOT?}/bin" ]]; then
pathmunge "${NODENV_ROOT?}/bin"
fi
if _command_exists nodenv; then
eval "$(nodenv init - bash)"

View File

@ -1,31 +1,13 @@
# shellcheck shell=bash
#
# BASH_IT_LOAD_PRIORITY: 225
#
# Bash-it no longer bundles nvm, as this was quickly becoming outdated.
# Please install nvm from https://github.com/creationix/nvm.git if you want to use it.
about-plugin 'Node.js version manager, https://github.com/nvm-sh/nvm'
cite about-plugin
about-plugin 'node version manager configuration'
# Load after basher
# BASH_IT_LOAD_PRIORITY: 260
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
# This loads nvm
if _bash_it_homebrew_check && [[ -s "${BASH_IT_HOMEBREW_PREFIX}/nvm.sh" ]]
then
source "${BASH_IT_HOMEBREW_PREFIX}/nvm.sh"
export NVM_DIR="${NVM_DIR:-${HOME?}/.nvm}"
if _bash_it_homebrew_check && [[ -s "${BASH_IT_HOMEBREW_PREFIX?}/nvm.sh" ]]; then
source "${BASH_IT_HOMEBREW_PREFIX?}/nvm.sh"
else
[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
fi
if ! _command_exists nvm
then
function nvm() {
echo "Bash-it no longer bundles the nvm script. Please install the latest version from"
echo ""
echo "https://github.com/creationix/nvm.git"
echo ""
echo "if you want to use nvm. You can keep this plugin enabled once you have installed nvm."
}
nvm
[[ -s "${NVM_DIR?}/nvm.sh" ]] && source "${NVM_DIR?}/nvm.sh"
fi

View File

@ -160,35 +160,35 @@ 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 270.'
assert_link_exist "$BASH_IT/enabled/270---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 270.'
assert_link_exist "$BASH_IT/enabled/270---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 1 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_line -n 0 'node enabled with priority 270.'
assert_line -n 1 'nvm enabled with priority 260.'
assert_link_exist "$BASH_IT/enabled/270---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
}
@test "helpers: enable the foo-unkown and nvm plugins through the bash-it function" {
run bash-it enable plugin "foo-unknown" "nvm"
assert_line -n 0 'sorry, foo-unknown does not appear to be an available plugin.'
assert_line -n 1 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_line -n 1 'nvm enabled with priority 260.'
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
}
@test "helpers: enable the nvm plugin" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_line -n 0 'nvm enabled with priority 260.'
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
}
@test "helpers: enable an unknown plugin" {
@ -223,24 +223,24 @@ function local_setup() {
@test "helpers: enable and disable the nvm plugin" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ]
assert_line -n 0 'nvm enabled with priority 260.'
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/260---nvm.plugin.bash" ]
run _disable-plugin "nvm"
assert_line -n 0 'nvm disabled.'
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/260---nvm.plugin.bash" ]
}
@test "helpers: disable the nvm plugin if it was enabled with a priority, but in the component-specific directory" {
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"
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/260---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/260---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/enabled/260---nvm.plugin.bash" ]
run _disable-plugin "nvm"
assert_line -n 0 'nvm disabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/260---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/260---nvm.plugin.bash" ]
}
@test "helpers: disable the nvm plugin if it was enabled without a priority" {
@ -259,29 +259,29 @@ function local_setup() {
run _enable-plugin "nvm"
assert_line -n 0 'nvm is already enabled.'
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/260---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/260---nvm.plugin.bash" ]
}
@test "helpers: enable the nvm plugin if it was enabled with a priority, but in the component-specific directory" {
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/nvm.plugin.bash $BASH_IT/plugins/enabled/260---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/260---nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line -n 0 'nvm is already enabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/260---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/enabled/260---nvm.plugin.bash" ]
}
@test "helpers: enable the nvm plugin twice" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_line -n 0 'nvm enabled with priority 260.'
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line -n 0 'nvm is already enabled.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
}
@test "helpers: profile load command sanity" {
@ -468,8 +468,8 @@ function local_setup() {
assert_line -n 1 'todo.txt-cli disabled.'
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/260---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/270---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" ]
@ -478,11 +478,11 @@ function local_setup() {
}
@test "helpers: migrate enabled plugins that use the new priority-based configuration in the individual directories" {
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/nvm.plugin.bash $BASH_IT/plugins/enabled/260---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/260---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/270---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/270---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"
@ -491,12 +491,12 @@ function local_setup() {
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
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/260---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/270---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----nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/270----node.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/260----nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/aliases/enabled/250----todo.txt-cli.aliases.bash" ]
}
@ -592,33 +592,33 @@ function __migrate_all_components() {
run bash-it enable plugin "node"
assert_line -n 0 'Migrating plugin nvm.'
assert_line -n 1 'nvm disabled.'
assert_line -n 2 'nvm enabled with priority 225.'
assert_line -n 2 'nvm enabled with priority 260.'
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 270.'
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/260---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/270---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/270---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/270---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 270.'
assert_line -n 3 'Migrating plugin nvm.'
assert_line -n 4 'nvm disabled.'
assert_line -n 5 'nvm enabled with priority 225.'
assert_line -n 5 'nvm enabled with priority 260.'
assert_line -n 6 'If any migration errors were reported, please try the following: reload && bash-it migrate'
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_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/270---node.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/270---node.plugin.bash" ]
}
@test "helpers: enable all plugins" {
@ -666,8 +666,8 @@ function __migrate_all_components() {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/250---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---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/270---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/270---node.plugin.bash"
local enabled=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs)
assert_equal "2" "$enabled"
@ -706,8 +706,8 @@ function __migrate_all_components() {
@test "helpers: describe the nvm plugin after enabling it" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_line -n 0 'nvm enabled with priority 260.'
assert_link_exist "$BASH_IT/enabled/260---nvm.plugin.bash"
_bash-it-plugins | grep "nvm" | grep "\[x\]"
}
@ -720,8 +720,8 @@ function __migrate_all_components() {
}
@test "helpers: describe the nvm plugin after enabling it in the old directory with priority" {
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/nvm.plugin.bash $BASH_IT/plugins/enabled/260---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/260---nvm.plugin.bash"
_bash-it-plugins | grep "nvm" | grep "\[x\]"
}

View File

@ -33,7 +33,7 @@ function local_setup() {
run _bash-it-search rails ruby gem bundler rake --no-color
assert_line -n 0 ' aliases: bundler rails '
assert_line -n 1 ' plugins: chruby chruby-auto rails ruby '
assert_line -n 1 ' plugins: chruby chruby-auto nenv nodenv rails ruby '
assert_line -n 2 ' completions: bundler gem rake '
}
@ -41,7 +41,7 @@ function local_setup() {
run _bash-it-search rails ruby gem bundler rake -chruby --no-color
assert_line -n 0 ' aliases: bundler rails '
assert_line -n 1 ' plugins: rails ruby '
assert_line -n 1 ' plugins: nenv nodenv rails ruby '
assert_line -n 2 ' completions: bundler gem rake '
}