diff --git a/lib/helpers.bash b/lib/helpers.bash index 3020014b..4658ab51 100644 --- a/lib/helpers.bash +++ b/lib/helpers.bash @@ -186,17 +186,17 @@ _bash-it-migrate() { do typeset ff=$(basename $f) - # Get the type of component from the extension - typeset single_type=$(echo $ff | sed -e 's/.*\.\(.*\)\.bash/\1/g' | sed 's/aliases/alias/g') - typeset component_name=$(echo $ff | cut -d'.' -f1) + # Get the type of component from the extension + typeset single_type=$(echo $ff | sed -e 's/.*\.\(.*\)\.bash/\1/g' | sed 's/aliases/alias/g') + typeset component_name=$(echo $ff | cut -d'.' -f1) - echo "Migrating $single_type $component_name." + echo "Migrating $single_type $component_name." - disable_func="_disable-$single_type" - enable_func="_enable-$single_type" + disable_func="_disable-$single_type" + enable_func="_enable-$single_type" - $disable_func $component_name - $enable_func $component_name + $disable_func $component_name + $enable_func $component_name done shopt -u nullglob done @@ -404,8 +404,8 @@ _enable-thing () return fi - typeset enabled_plugin=$(command ls "${BASH_IT}/enabled/"[0-9]*$BASH_IT_LOAD_PRIORITY_SEPARATOR$to_enable 2>/dev/null | head -1) - if [ ! -z "$enabled_plugin" ] ; then + typeset enabled_plugin_global=$(command ls "${BASH_IT}/enabled/[0-9]*$BASH_IT_LOAD_PRIORITY_SEPARATOR$to_enable" 2>/dev/null | head -1) + if [ ! -z "$enabled_plugin_global" ] ; then printf '%s\n' "$file_entity is already enabled." return fi diff --git a/test/lib/helpers.bats b/test/lib/helpers.bats index 67cdf024..ac72634b 100644 --- a/test/lib/helpers.bats +++ b/test/lib/helpers.bats @@ -189,18 +189,42 @@ function local_setup { assert [ -L "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ] run _enable-plugin "ssh" - assert [ -L "$BASH_IT/plugins/enabled/250---ssh.plugin.bash" ] + assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] run _bash-it-migrate - assert [ -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] - assert [ -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ] - assert [ -L "$BASH_IT/plugins/enabled/250---ssh.plugin.bash" ] - assert [ -L "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash" ] + + assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] + assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ] assert [ ! -L "$BASH_IT/plugins/enabled/node.plugin.bash" ] assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] assert [ ! -L "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ] } +@test "bash-it: 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 [ -L "$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 [ -L "$BASH_IT/plugins/enabled/250---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 [ -L "$BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash" ] + + run _enable-plugin "ssh" + assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + + run _bash-it-migrate + assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] + assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + assert [ -L "$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/aliases/enabled/250----todo.txt-cli.aliases.bash" ] +} + @test "bash-it: run the migrate command without anything to migrate and nothing enabled" { run _bash-it-migrate }