Enable load commands to accept file paths in addition to layout names

Resolves issue #20. Additionally, load_session now has an optional
second argument to set the default session name. And error output from
both load commands is now printed to STDERR and give a return code of 1
on error.
This commit is contained in:
2013-07-02 23:04:35 +02:00
parent da1354d5b7
commit 1dddbb502c
3 changed files with 29 additions and 11 deletions

View File

@@ -143,16 +143,21 @@ window_root() {
# Load specified window layout. # Load specified window layout.
# #
# Arguments: # Arguments:
# - $1: Name of window layout to load. # - $1: Name of or file path to window layout to load.
# - $2: Override default window name. # - $2: (optional) Override default window name.
# #
load_window() { load_window() {
local file="$TMUXIFIER_LAYOUT_PATH/$1.window.sh" local file="$1"
if [ ! -f "$file" ]; then
file="$TMUXIFIER_LAYOUT_PATH/$1.window.sh"
fi
if [ -f "$file" ]; then if [ -f "$file" ]; then
if [ $# -gt 1 ]; then if [ $# -gt 1 ]; then
window="$2" window="$2"
else else
window="$1" window="${1/%.window.sh}"
window="${window/%.sh}"
fi fi
source "$file" source "$file"
window= window=
@@ -162,19 +167,31 @@ load_window() {
window_root "$session_root" window_root "$session_root"
fi fi
else else
echo "No such window layout found '$1' in '$TMUXIFIER_LAYOUT_PATH'." echo "\"$1\" window layout not found." >&2
return 1
fi fi
} }
# Load specified session layout. # Load specified session layout.
# #
# Arguments: # Arguments:
# - $1: Name of session layout to load. # - $1: Name of or file path to session layout to load.
# - $2: (optional) Override default window name.
# #
load_session() { load_session() {
local file="$TMUXIFIER_LAYOUT_PATH/$1.session.sh" local file="$1"
if [ ! -f "$file" ]; then
file="$TMUXIFIER_LAYOUT_PATH/$1.session.sh"
fi
if [ -f "$file" ]; then if [ -f "$file" ]; then
session="$1" if [ $# -gt 1 ]; then
session="$2"
else
session="${1/%.session.sh}"
session="${session/%.sh}"
fi
set_default_path=true set_default_path=true
source "$file" source "$file"
session= session=
@@ -184,7 +201,8 @@ load_session() {
session_root="$HOME" session_root="$HOME"
fi fi
else else
echo "No such session layout found '$1' in '$TMUXIFIER_LAYOUT_PATH'." echo "\"$1\" session layout not found." >&2
return 1
fi fi
} }

View File

@@ -7,7 +7,7 @@ source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help # Provide tmuxifier help
if calling-help "$@"; then if calling-help "$@"; then
echo "usage: tmuxifier load-session <layout_name> echo "usage: tmuxifier load-session <layout_name | file_path>
Aliases: session, ses, s Aliases: session, ses, s

View File

@@ -7,7 +7,7 @@ source "$TMUXIFIER/lib/util.sh"
# Provide tmuxifier help # Provide tmuxifier help
if calling-help "$@"; then if calling-help "$@"; then
echo "usage: tmuxifier load-window <layout_name> echo "usage: tmuxifier load-window <layout_name | file_path>
Aliases: window, win, w Aliases: window, win, w