Enable auto load

pull/7/head
Bruno Sutic 2015-02-15 14:36:06 +01:00
parent da2cc780d5
commit 99658eda98
No known key found for this signature in database
GPG Key ID: 66D96E4F2F7EF26C
4 changed files with 48 additions and 0 deletions

View File

@ -1,6 +1,7 @@
# Changelog
### master
- enable automatic environment restore when tmux is started
### v1.0.0, 2015-02-12
- first working version

View File

@ -18,12 +18,27 @@ add_resurrect_save_interpolation() {
set_tmux_option "status-right" "$new_value"
}
# on tmux server start, when tmux.conf is sourced there are no sessions and
# `tmux has` reports 1
just_started_tmux_server() {
tmux has
[ $? -eq 1 ]
}
start_auto_restore_in_background() {
$CURRENT_DIR/scripts/resurrect_auto_restore.sh &
}
main() {
if supported_tmux_version_ok; then
# Don't start saving right after tmux is started.
# We wanna give user a chance to restore previous session.
set_last_save_timestamp
add_resurrect_save_interpolation
if just_started_tmux_server; then
start_auto_restore_in_background
fi
fi
}
main

View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "$CURRENT_DIR/helpers.sh"
source "$CURRENT_DIR/variables.sh"
auto_restore_not_disabled() {
local auto_restore_value="$(get_tmux_option "$auto_restore_option" "$auto_restore_default")"
[ "$auto_restore_value" == "on" ] && [ ! -f "$auto_restore_halt_file" ]
}
fetch_and_run_tmux_resurrect_restore_script() {
# give tmux some time to start and source all the plugins
sleep 1
local resurrect_restore_script_path="$(get_tmux_option "$resurrect_restore_path_option" "")"
if [ -n "$resurrect_restore_script_path" ]; then
"$resurrect_restore_script_path"
fi
}
main() {
if auto_restore_not_disabled; then
fetch_and_run_tmux_resurrect_restore_script
fi
}
main

View File

@ -9,3 +9,8 @@ auto_save_interval_option="@resurrect-auto-save-interval"
# time when the tmux environment was last saved (unix timestamp)
last_auto_save_option="@resurrect-auto-save-last-timestamp"
auto_restore_option="@resurrect-auto-restore"
auto_restore_default="off"
auto_restore_halt_file="${HOME}/tmux_no_auto_restore"