mirror of
				https://github.com/tmux-plugins/tpm.git
				synced 2025-11-04 08:36:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			79 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
 |