Jakobus Schürz
d2f0657629
and use the same pathes for vim plugin repos on git.schuerz.at as on github.com
78 lines
1.9 KiB
Bash
Executable file
78 lines
1.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
VERSION="$1"
|
|
UNSUPPORTED_MSG="$2"
|
|
|
|
get_tmux_option() {
|
|
local option=$1
|
|
local default_value=$2
|
|
local option_value=$(tmux show-option -gqv "$option")
|
|
if [ -z "$option_value" ]; then
|
|
echo "$default_value"
|
|
else
|
|
echo "$option_value"
|
|
fi
|
|
}
|
|
|
|
# Ensures a message is displayed for 5 seconds in tmux prompt.
|
|
# Does not override the 'display-time' tmux option.
|
|
display_message() {
|
|
local message="$1"
|
|
|
|
# display_duration defaults to 5 seconds, if not passed as an argument
|
|
if [ "$#" -eq 2 ]; then
|
|
local display_duration="$2"
|
|
else
|
|
local display_duration="5000"
|
|
fi
|
|
|
|
# saves user-set 'display-time' option
|
|
local saved_display_time=$(get_tmux_option "display-time" "750")
|
|
|
|
# sets message display time to 5 seconds
|
|
tmux set-option -gq display-time "$display_duration"
|
|
|
|
# displays message
|
|
tmux display-message "$message"
|
|
|
|
# restores original 'display-time' value
|
|
tmux set-option -gq display-time "$saved_display_time"
|
|
}
|
|
|
|
# this is used to get "clean" integer version number. Examples:
|
|
# `tmux 1.9` => `19`
|
|
# `1.9a` => `19`
|
|
get_digits_from_string() {
|
|
local string="$1"
|
|
local only_digits="$(echo "$string" | tr -dC '[:digit:]')"
|
|
echo "$only_digits"
|
|
}
|
|
|
|
tmux_version_int() {
|
|
local tmux_version_string=$(tmux -V)
|
|
echo "$(get_digits_from_string "$tmux_version_string")"
|
|
}
|
|
|
|
unsupported_version_message() {
|
|
if [ -n "$UNSUPPORTED_MSG" ]; then
|
|
echo "$UNSUPPORTED_MSG"
|
|
else
|
|
echo "Error, Tmux version unsupported! Please install Tmux version $VERSION or greater!"
|
|
fi
|
|
}
|
|
|
|
exit_if_unsupported_version() {
|
|
local current_version="$1"
|
|
local supported_version="$2"
|
|
if [ "$current_version" -lt "$supported_version" ]; then
|
|
display_message "$(unsupported_version_message)"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
local supported_version_int="$(get_digits_from_string "$VERSION")"
|
|
local current_version_int="$(tmux_version_int)"
|
|
exit_if_unsupported_version "$current_version_int" "$supported_version_int"
|
|
}
|
|
main
|