From 1579534c2e3dda36d0037661f3aeb8af05bd3da5 Mon Sep 17 00:00:00 2001 From: Graham McGregor Date: Thu, 1 Dec 2016 22:55:12 -0500 Subject: [PATCH] Prevent clean_plugins from deleting root If tmux was not yet configured to initialize the Tmux Plugin Manager, the variable for the plugin home was not being set. This was resulting in a `rm -rf /` which is pretty nuclear. Fixes: https://github.com/tmux-plugins/tpm/issues/58 --- scripts/helpers/plugin_functions.sh | 13 +++++++++++++ scripts/update_plugin.sh | 1 + 2 files changed, 14 insertions(+) diff --git a/scripts/helpers/plugin_functions.sh b/scripts/helpers/plugin_functions.sh index b1dfb3d..d2778d5 100644 --- a/scripts/helpers/plugin_functions.sh +++ b/scripts/helpers/plugin_functions.sh @@ -31,9 +31,22 @@ _sourced_files() { awk '/^[ \t]*source(-file)? +/ { gsub(/'\''/,""); gsub(/'\"'/,""); print $2 }' } +# Want to be able to abort in certain cases +trap "exit 1" TERM +export TOP_PID=$$ + +_fatal_error_abort() { + echo >&2 "Aborting." + kill -s TERM $TOP_PID +} + # PUBLIC FUNCTIONS BELOW tpm_path() { + if [ "$_CACHED_TPM_PATH" == "/" ]; then + echo >&2 "FATAL: Tmux Plugin Manager not configured in tmux.conf" + _fatal_error_abort + fi echo "$_CACHED_TPM_PATH" } diff --git a/scripts/update_plugin.sh b/scripts/update_plugin.sh index 4fc44d2..7d856ee 100755 --- a/scripts/update_plugin.sh +++ b/scripts/update_plugin.sh @@ -60,6 +60,7 @@ update_plugins() { } main() { + ensure_tpm_path_exists if [ "$1" == "all" ]; then update_all else