diff --git a/scripts/shared_functions.sh b/scripts/shared_functions.sh index efa9e89..2d67d31 100644 --- a/scripts/shared_functions.sh +++ b/scripts/shared_functions.sh @@ -12,7 +12,15 @@ shared_set_tpm_path_constant() { } shared_get_tpm_plugins_list() { - tmux show-option -gqv "$tpm_plugins_variable_name" + local plugins_list + plugins_list="$(tmux show-option -gqv "$tpm_plugins_variable_name")" + if [ -z "${plugins_list}" ]; then + #read set @plugin "tmux-plugins/tmux-example-plugin" entries + cat /etc/tmux.conf ~/.tmux.conf 2>/dev/null | + awk '/^set +@plugin/ { gsub(/'\''/,""); gsub(/'\"'/,""); print $3 }' + else + printf "%s\\n" "${plugins_list}" + fi } # Allowed plugin name formats: diff --git a/tests/test_plugin_bundle_installation.sh b/tests/test_plugin_bundle_installation.sh new file mode 100755 index 0000000..0fed45b --- /dev/null +++ b/tests/test_plugin_bundle_installation.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source $CURRENT_DIR/helpers.sh + +test_plugin_installation() { + set_tmux_conf_helper <<- HERE + set @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$PWD/tpm" + HERE + + # opens tmux and test it with `expect` + "$CURRENT_DIR"/expect_successful_plugin_download || + fail_helper "Tmux plugin installation fails" + + # check plugin dir exists after download + check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" || + fail_helper "Plugin download fails" + + teardown_helper +} + +main() { + test_plugin_installation + exit_value_helper +} +main