9 Commits

Author SHA1 Message Date
98b50afb37 Bump version to 0.1.3 2012-04-30 02:18:57 +01:00
99bd6a9bd5 Improve error output from edit-session and edit-window commands 2012-04-30 02:15:50 +01:00
5a0e4c912c Remove useless piece of code left from "borrowing" it from rbenv 2012-04-30 02:15:22 +01:00
178bbdecff Make better use of conditional operators and quote vars properly 2012-04-30 02:14:52 +01:00
1fc854dbdd Move internal runtime functions to layout-helpers.sh file 2012-04-30 02:12:01 +01:00
addb754ac7 Use new tmuxifier-resolve-command-path everywhere 2012-04-30 02:10:43 +01:00
3063c6f1f3 Correctly resolve aliases in help command.
This resolves issue #1.
2012-04-30 02:08:40 +01:00
7d2c9aa49f Bump version to 0.1.2 2012-04-26 08:52:02 +01:00
b65355a35a Boolean logic is hard (and buggy? wtf?)
Fixed a bug with alias resolution not working, for reasons that are
currently beyond my understanding of shell scripting it would seem.
2012-04-26 08:51:49 +01:00
13 changed files with 65 additions and 61 deletions

View File

@@ -24,14 +24,7 @@ case "$command" in
;; ;;
* ) * )
# Lookup command, attempt to resolve as alias if fails ! command_path="$(tmuxifier-resolve-command-path "$command")"
! command_path="$(command -v "tmuxifier-$command")"
if [ ! -n $? ]; then
resolved="$(tmuxifier-alias "$command")"
if [ ! -z "$resolved" ]; then
! command_path="$(command -v "tmuxifier-$resolved")"
fi
fi
if [ -z "$command_path" ]; then if [ -z "$command_path" ]; then
echo "tmuxifier: no such command '$command'" >&2 echo "tmuxifier: no such command '$command'" >&2

View File

@@ -10,7 +10,7 @@ export PATH="$TMUXIFIER/bin:$PATH"
# If `tmuxifier` is available, and `$TMUXIFIER_NO_COMPLETE` is not set, then # If `tmuxifier` is available, and `$TMUXIFIER_NO_COMPLETE` is not set, then
# load tmuxifier shell completion. # load tmuxifier shell completion.
if [ ! -z $(command -v "tmuxifier") ] && [ -z "$TMUXIFIER_NO_COMPLETE" ]; then if [ -n "$(command -v "tmuxifier")" ] && [ -z "$TMUXIFIER_NO_COMPLETE" ]; then
if [ -n "$BASH_VERSION" ]; then if [ -n "$BASH_VERSION" ]; then
source "$TMUXIFIER/completion/tmuxifier.bash" source "$TMUXIFIER/completion/tmuxifier.bash"
elif [ -n "$ZSH_VERSION" ]; then elif [ -n "$ZSH_VERSION" ]; then

View File

@@ -13,14 +13,14 @@
# - $2: (optional) Shell command to execute when window is created. # - $2: (optional) Shell command to execute when window is created.
# #
new_window() { new_window() {
if [ ! -z "$1" ]; then if [ -n "$1" ]; then
window="$1" window="$1"
fi fi
local command=() local command=()
if [ ! -z "$2" ]; then if [ -n "$2" ]; then
command+=("$2") command+=("$2")
fi fi
if [ ! -z "$window" ]; then if [ -n "$window" ]; then
local winarg=(-n "$window") local winarg=(-n "$window")
fi fi
tmux new-window -t "$session:" "${winarg[@]}" "${command[@]}" tmux new-window -t "$session:" "${winarg[@]}" "${command[@]}"
@@ -114,7 +114,7 @@ window_root() {
# fi # fi
# #
initialize_session() { initialize_session() {
if [ ! -z "$1" ]; then if [ -n "$1" ]; then
session="$1" session="$1"
fi fi
@@ -127,7 +127,7 @@ initialize_session() {
env TMUX= tmux new-session -d -s "$session" env TMUX= tmux new-session -d -s "$session"
# Set default-path for session # Set default-path for session
if [ ! -z "$session_root" ] && [ -d "$session_root" ]; then if [ -n "$session_root" ] && [ -d "$session_root" ]; then
cd "$session_root" cd "$session_root"
tmux set-option -t "$session" default-path "$session_root" 1>/dev/null tmux set-option -t "$session" default-path "$session_root" 1>/dev/null
fi fi
@@ -162,3 +162,27 @@ finalize_and_go_to_session() {
__go_to_session __go_to_session
fi fi
} }
#
# Internal functions
#
# Expands given path.
#
# Example:
#
# $ __expand_path "~/Projects"
# /Users/jimeh/Projects
#
__expand_path() {
echo $(eval echo "$@")
}
__go_to_session() {
if [ -z "$TMUX" ]; then
tmux -u attach-session -t "$session"
else
tmux -u switch-client -t "$session"
fi
}

View File

@@ -31,6 +31,5 @@ case "$1" in
echo "list-windows" echo "list-windows"
;; ;;
* ) * )
echo "unknown alias \"$1\""
exit 1 exit 1
esac esac

View File

@@ -7,7 +7,7 @@ shopt -s nullglob
{ for path in ${PATH//:/$'\n'}; do { for path in ${PATH//:/$'\n'}; do
for command in "${path}/tmuxifier-"*; do for command in "${path}/tmuxifier-"*; do
command="${command##*tmuxifier-}" command="${command##*tmuxifier-}"
echo ${command##sh-} echo "$command"
done done
done done
} | sort | uniq } | sort | uniq

View File

@@ -18,16 +18,9 @@ if [ -z "$command" ]; then
exit 1 exit 1
fi fi
# Lookup command, attempt to resolve as alias if fails ! command_path="$(tmuxifier-resolve-command-path "$command")"
! command_path="$(command -v "tmuxifier-$command")"
if [ ! -n $? ]; then
resolved="$(tmuxifier-alias "$command")"
if [ ! -z "$resolved" ]; then
! command_path="$(command -v "tmuxifier-$resolved")"
fi
fi
if [ ! -z "$command_path" ] && has-completions "$command_path"; then if [ -n "$command_path" ] && has-completions "$command_path"; then
shift shift
exec "$command_path" --complete "$@" exec "$command_path" --complete "$@"
fi fi

View File

@@ -2,7 +2,7 @@
set -e set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x [ -n "$TMUXIFIER_DEBUG" ] && set -x
if [ ! -z $TMUX ]; then if [ -n "$TMUX" ]; then
for item in $(tmux list-sessions -F "#{?session_attached,1,0}:#S"); do for item in $(tmux list-sessions -F "#{?session_attached,1,0}:#S"); do
if [[ "$item" == "1:"* ]]; then if [[ "$item" == "1:"* ]]; then
echo ${item/1:/} echo ${item/1:/}

View File

@@ -22,7 +22,7 @@ if [ ! -f "$layout_file" ]; then
echo "tmuxifier: session layout '$layout_name' does not exist." >&2 echo "tmuxifier: session layout '$layout_name' does not exist." >&2
echo "" >&2 echo "" >&2
echo "You can create it with:" >&2 echo "You can create it with:" >&2
echo " tmuxifier new-session $layout_name" >&2 echo " tmuxifier new-session '$layout_name'" >&2
exit 1 exit 1
fi fi

View File

@@ -22,7 +22,7 @@ if [ ! -f "$layout_file" ]; then
echo "tmuxifier: window layout '$layout_name' does not exist." >&2 echo "tmuxifier: window layout '$layout_name' does not exist." >&2
echo "" >&2 echo "" >&2
echo "You can create it with:" >&2 echo "You can create it with:" >&2
echo " tmuxifier new-window $layout_name" >&2 echo " tmuxifier new-window '$layout_name'" >&2
exit 1 exit 1
fi fi

View File

@@ -10,13 +10,11 @@ fi
command="$1" command="$1"
# Lookup command, attempt to resolve as alias if fails # Ensure we have the correct command name in case an alias was given.
! command_path="$(command -v "tmuxifier-$command")" if [ -n "$command" ]; then
if [ ! -n $? ]; then ! resolved="$(tmuxifier-alias "$command")"
resolved="$(tmuxifier-alias "$command")" if [ -n "$resolved" ]; then
if [ ! -z "$resolved" ]; then
command="$resolved" command="$resolved"
! command_path="$(command -v "tmuxifier-$command")"
fi fi
fi fi
@@ -111,14 +109,16 @@ Aliases: list-win, lsw
List all window layouts." List all window layouts."
;; ;;
* ) * )
if [ ! -z "$command_path" ]; then ! command_path="$(tmuxifier-resolve-command-path "$command")"
if [ -n "$command_path" ]; then
echo "Sorry, the '$command' command isn't documented yet." echo "Sorry, the '$command' command isn't documented yet."
echo echo
echo "You can view the command's source here:" echo "You can view the command's source here:"
echo "$command_path" echo "$command_path"
echo echo
else else
echo "tmuxifier: no such command '$command'" echo "tmuxifier: no such command '$command'" >&2
exit 1
fi fi
;; ;;
esac esac

View File

@@ -0,0 +1,19 @@
#! /usr/bin/env bash
set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x
if [ -n "$1" ]; then
! command_path="$(command -v "tmuxifier-$1")"
if [ -z "$command_path" ]; then
resolved="$(tmuxifier-alias "$1")"
if [ -n "$resolved" ]; then
! command_path="$(command -v "tmuxifier-$resolved")"
fi
fi
fi
if [ -n "$command_path" ]; then
echo "$command_path"
else
exit 1
fi

View File

@@ -2,4 +2,4 @@
set -e set -e
[ -n "$TMUXIFIER_DEBUG" ] && set -x [ -n "$TMUXIFIER_DEBUG" ] && set -x
echo "0.1.1" echo "0.1.3"

View File

@@ -10,27 +10,3 @@ session_root="$HOME"
# Load layout helper functions. # Load layout helper functions.
source "$TMUXIFIER/lib/layout-helpers.sh" source "$TMUXIFIER/lib/layout-helpers.sh"
#
# Internal functions
#
# Expands given path.
#
# Example:
#
# $ __expand_path "~/Projects"
# /Users/jimeh/Projects
#
__expand_path() {
echo $(eval echo "$@")
}
__go_to_session() {
if [ -z $TMUX ]; then
tmux -u attach-session -t "$session"
else
tmux -u switch-client -t "$session"
fi
}