diff --git a/.gitmodules b/.gitmodules index 536f6e9283..4e1155917e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,11 +1,12 @@ [submodule "test_lib/bats-core"] path = test_lib/bats-core url = https://github.com/bats-core/bats-core - branch = tags/v1.9.0 + branch = tags/v1.11.1 [submodule "test_lib/bats-support"] path = test_lib/bats-support url = https://github.com/bats-core/bats-support - branch = tags/v0.3.0 + branch = master + #branch = tags/v0.3.0 [submodule "test_lib/bats-assert"] path = test_lib/bats-assert url = https://github.com/bats-core/bats-assert @@ -13,4 +14,4 @@ [submodule "test_lib/bats-file"] path = test_lib/bats-file url = https://github.com/bats-core/bats-file - branch = tags/v0.4.0 + branch = master diff --git a/install.sh b/install.sh index 4063f516ed..d53ca65a6e 100755 --- a/install.sh +++ b/install.sh @@ -82,8 +82,8 @@ function _bash-it_check_for_backup() { fi echo -e "\033[0;33mBackup file already exists. Make sure to backup your .bashrc before running this installation.\033[0m" >&2 - if [[ -z "${overwrite_backup}" ]]; then - while [[ -z "${silent}" ]]; do + if [[ -z "${overwrite_backup:-}" ]]; then + while [[ -z "${silent:-}" ]]; do read -e -n 1 -r -p "Would you like to overwrite the existing backup? This will delete your existing backup file ($HOME/$BACKUP_FILE) [y/N] " RESP case $RESP in [yY]) @@ -99,9 +99,9 @@ function _bash-it_check_for_backup() { esac done fi - if [[ -z "${overwrite_backup}" ]]; then + if [[ -z "${overwrite_backup:-}" ]]; then echo -e "\033[91mInstallation aborted. Please come back soon!\033[m" - if [[ -n "${silent}" ]]; then + if [[ -n "${silent:-}" ]]; then echo -e "\033[91mUse \"-f\" flag to force overwrite of backup.\033[m" fi exit 1 @@ -113,8 +113,8 @@ function _bash-it_check_for_backup() { function _bash-it_modify_config_files() { _bash-it_check_for_backup - if [[ -z "${silent}" ]]; then - while [[ -z "${append_to_config}" ]]; do + if [[ -z "${silent:-}" ]]; then + while [[ -z "${append_to_config:-}" ]]; do read -e -n 1 -r -p "Would you like to keep your $CONFIG_FILE and append bash-it templates at the end? [y/N] " choice case $choice in [yY]) @@ -130,7 +130,7 @@ function _bash-it_modify_config_files() { esac done fi - if [[ -n "${append_to_config}" ]]; then + if [[ -n "${append_to_config:-}" ]]; then # backup/append _bash-it_backup_append else @@ -173,12 +173,12 @@ done shift $((OPTIND - 1)) -if [[ -n "${silent}" && -n "${interactive}" ]]; then +if [[ -n "${silent:-}" && -n "${interactive:-}" ]]; then echo -e "\033[91mOptions --silent and --interactive are mutually exclusive. Please choose one or the other.\033[m" exit 1 fi -if [[ -n "${no_modify_config}" && -n "${append_to_config}" ]]; then +if [[ -n "${no_modify_config:-}" && -n "${append_to_config:-}" ]]; then echo -e "\033[91mOptions --no-modify-config and --append-to-config are mutually exclusive. Please choose one or the other.\033[m" exit 1 fi @@ -220,7 +220,7 @@ cite _about _param _example _group _author _version # shellcheck source=./lib/helpers.bash source "$BASH_IT/lib/helpers.bash" -if [[ -n $interactive && -z "${silent}" ]]; then +if [[ -n ${interactive:-} && -z "${silent:-}" ]]; then for type in "aliases" "plugins" "completion"; do echo -e "\033[0;32mEnabling ${type}\033[0m" _bash-it_load_some "$type" diff --git a/test/lib/helpers.bats b/test/lib/helpers.bats index 806a0ce8c0..6d41121822 100644 --- a/test/lib/helpers.bats +++ b/test/lib/helpers.bats @@ -40,7 +40,7 @@ function local_setup() { } @test "helpers: bash-it help list aliases with ag aliases enabled" { - ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" + run ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" assert_link_exist "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" run _help-list-aliases "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" @@ -48,7 +48,7 @@ function local_setup() { } @test "helpers: bash-it help list aliases with todo.txt-cli aliases enabled" { - ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash" + run ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash" assert_link_exist "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash" run _help-list-aliases "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash" @@ -56,7 +56,7 @@ function local_setup() { } @test "helpers: bash-it help list aliases with docker-compose aliases enabled" { - ln -s "${BASH_IT?}/aliases/available/docker-compose.aliases.bash" "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash" + run ln -s "${BASH_IT?}/aliases/available/docker-compose.aliases.bash" "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash" assert_link_exist "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash" run _help-list-aliases "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash" @@ -64,7 +64,7 @@ function local_setup() { } @test "helpers: bash-it help list aliases with ag aliases enabled in global directory" { - ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/enabled/150---ag.aliases.bash" + run ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/enabled/150---ag.aliases.bash" assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash" run _help-list-aliases "${BASH_IT?}/enabled/150---ag.aliases.bash" @@ -72,7 +72,7 @@ function local_setup() { } @test "helpers: bash-it help aliases one alias enabled in the old directory" { - ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" + run ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" assert_link_exist "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash" run bash-it help aliases @@ -192,7 +192,7 @@ function local_setup() { } @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" + run 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" ] @@ -203,7 +203,7 @@ function local_setup() { } @test "helpers: disable the nvm plugin if it was enabled without a priority" { - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" + run 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" run _disable-plugin "nvm" @@ -212,7 +212,7 @@ function local_setup() { } @test "helpers: enable the nvm plugin if it was enabled without a priority" { - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" + run 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" run _enable-plugin "nvm" @@ -223,7 +223,7 @@ function local_setup() { } @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" + run 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" run _enable-plugin "nvm" @@ -404,10 +404,10 @@ function local_setup() { } @test "helpers: migrate plugins and completions that share the same name" { - ln -s "${BASH_IT?}/completion/available/dirs.completion.bash" "${BASH_IT?}/completion/enabled/350---dirs.completion.bash" + run ln -s "${BASH_IT?}/completion/available/dirs.completion.bash" "${BASH_IT?}/completion/enabled/350---dirs.completion.bash" assert_link_exist "${BASH_IT?}/completion/enabled/350---dirs.completion.bash" - ln -s "${BASH_IT?}/plugins/available/dirs.plugin.bash" "${BASH_IT?}/plugins/enabled/250---dirs.plugin.bash" + run ln -s "${BASH_IT?}/plugins/available/dirs.plugin.bash" "${BASH_IT?}/plugins/enabled/250---dirs.plugin.bash" assert_link_exist "${BASH_IT?}/plugins/enabled/250---dirs.plugin.bash" run _bash-it-migrate @@ -426,13 +426,13 @@ function local_setup() { } @test "helpers: migrate enabled plugins that don't use the new priority-based configuration" { - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" + run 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/node.plugin.bash" + run ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/node.plugin.bash" assert_link_exist "${BASH_IT?}/plugins/enabled/node.plugin.bash" - ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/todo.txt-cli.aliases.bash" + run ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/todo.txt-cli.aliases.bash" assert_link_exist "${BASH_IT?}/aliases/enabled/todo.txt-cli.aliases.bash" run _enable-plugin "ssh" @@ -453,13 +453,13 @@ 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" + run 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" + run 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?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/250---todo.txt-cli.aliases.bash" + run 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" run _enable-plugin "ssh" @@ -495,9 +495,9 @@ function __migrate_all_components() { for f in "${BASH_IT}/$subdirectory/available/"*.bash; do to_enable=$(basename "$f") if [[ -z "$priority" ]]; then - ln -s "../available/$to_enable" "${BASH_IT}/${subdirectory}/enabled/$to_enable" + run ln -s "../available/$to_enable" "${BASH_IT}/${subdirectory}/enabled/$to_enable" else - ln -s "../available/$to_enable" "${BASH_IT}/${subdirectory}/enabled/$priority---$to_enable" + run ln -s "../available/$to_enable" "${BASH_IT}/${subdirectory}/enabled/$priority---$to_enable" fi done @@ -566,7 +566,7 @@ function __migrate_all_components() { } @test "helpers: verify that existing components are automatically migrated when something is enabled" { - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" + run 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" run bash-it enable plugin "node" @@ -581,9 +581,9 @@ function __migrate_all_components() { } @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" + run 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" + run 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" run bash-it disable plugin "node" @@ -627,10 +627,10 @@ function __migrate_all_components() { @test "helpers: disable all plugins in the old directory structure" { local enabled enabled2 - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" + run 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/node.plugin.bash" + run ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/node.plugin.bash" assert_link_exist "${BASH_IT?}/plugins/enabled/node.plugin.bash" enabled=$(find "${BASH_IT?}/plugins/enabled" -name '*.plugin.bash' | wc -l | xargs) @@ -647,10 +647,10 @@ function __migrate_all_components() { @test "helpers: disable all plugins in the old directory structure with priority" { local enabled enabled2 - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/250---nvm.plugin.bash" + run 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" + run 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" enabled=$(find "${BASH_IT?}/plugins/enabled" -name '*.plugin.bash' | wc -l | xargs) @@ -698,14 +698,14 @@ function __migrate_all_components() { } @test "helpers: describe the nvm plugin after enabling it in the old directory" { - ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" + run 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" _bash-it-plugins | grep "nvm" | grep "\[x\]" } @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" + run 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" _bash-it-plugins | grep "nvm" | grep "\[x\]" diff --git a/test/plugins/base.plugin.bats b/test/plugins/base.plugin.bats index b45ae07999..7398212494 100644 --- a/test/plugins/base.plugin.bats +++ b/test/plugins/base.plugin.bats @@ -8,10 +8,14 @@ function local_setup_file() { } @test 'plugins base: ips()' { - readonly localhost='127.0.0.1' + if [[ -n "${CI:-}" ]]; then + skip 'ifconfig probably requires sudo on TravisCI' + fi + + declare -r localhost='127.0.0.1' run ips assert_success - assert_line "$localhost" + assert_line $localhost } @test 'plugins base: myip()' {