mirror of
				https://github.com/tmux-plugins/tmux-resurrect.git
				synced 2025-11-04 00:46:04 +00:00 
			
		
		
		
	@@ -3,6 +3,7 @@
 | 
				
			|||||||
### master
 | 
					### master
 | 
				
			||||||
- saving a new session does not remove the previous one
 | 
					- saving a new session does not remove the previous one
 | 
				
			||||||
- make the directory where sessions are stored configurable
 | 
					- make the directory where sessions are stored configurable
 | 
				
			||||||
 | 
					- support only Tmux v1.9 or greater
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### v0.0.1, 2014-08-26
 | 
					### v0.0.1, 2014-08-26
 | 
				
			||||||
- started a project
 | 
					- started a project
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										78
									
								
								scripts/check_tmux_version.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								scripts/check_tmux_version.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					#!/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
 | 
				
			||||||
@@ -2,6 +2,8 @@
 | 
				
			|||||||
default_sessions_dir="$HOME/.tmux/sessions"
 | 
					default_sessions_dir="$HOME/.tmux/sessions"
 | 
				
			||||||
sessions_dir_option="@sessions-dir"
 | 
					sessions_dir_option="@sessions-dir"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SUPPORTED_VERSION="1.9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# helper functions
 | 
					# helper functions
 | 
				
			||||||
get_tmux_option() {
 | 
					get_tmux_option() {
 | 
				
			||||||
	local option="$1"
 | 
						local option="$1"
 | 
				
			||||||
@@ -39,6 +41,13 @@ display_message() {
 | 
				
			|||||||
	tmux set-option -gq display-time "$saved_display_time"
 | 
						tmux set-option -gq display-time "$saved_display_time"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					supported_tmux_version_ok() {
 | 
				
			||||||
 | 
						$CURRENT_DIR/check_tmux_version.sh "$SUPPORTED_VERSION"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# path helpers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sessions_dir() {
 | 
					sessions_dir() {
 | 
				
			||||||
	echo $(get_tmux_option "$sessions_dir_option" "$default_sessions_dir")
 | 
						echo $(get_tmux_option "$sessions_dir_option" "$default_sessions_dir")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,6 +75,8 @@ restore_all_sessions() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
main() {
 | 
					main() {
 | 
				
			||||||
	restore_all_sessions
 | 
						if supported_tmux_version_ok; then
 | 
				
			||||||
 | 
							restore_all_sessions
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
main
 | 
					main
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,8 @@ save_all_sessions() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
main() {
 | 
					main() {
 | 
				
			||||||
	save_all_sessions
 | 
						if supported_tmux_version_ok; then
 | 
				
			||||||
 | 
							save_all_sessions
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
main
 | 
					main
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user