mirror of
https://github.com/jimeh/tmuxifier.git
synced 2026-02-19 09:56:39 +00:00
Fixed a bug with alias resolution not working, for reasons that are currently beyond my understanding of shell scripting it would seem.
125 lines
3.2 KiB
Bash
Executable File
125 lines
3.2 KiB
Bash
Executable File
#! /usr/bin/env bash
|
|
set -e
|
|
[ -n "$TMUXIFIER_DEBUG" ] && set -x
|
|
|
|
# Provide tmuxifier completions
|
|
if [ "$1" == "--complete" ]; then
|
|
tmuxifier-commands
|
|
exit
|
|
fi
|
|
|
|
command="$1"
|
|
|
|
# Lookup command, attempt to resolve as alias if fails
|
|
! command_path="$(command -v "tmuxifier-$command")"
|
|
if [ -z "$command_path" ]; then
|
|
resolved="$(tmuxifier-alias "$command")"
|
|
if [ ! -z "$resolved" ]; then
|
|
command="$resolved"
|
|
! command_path="$(command -v "tmuxifier-$command")"
|
|
fi
|
|
fi
|
|
|
|
case "$command" in
|
|
"" )
|
|
echo "usage: tmuxifier <command> [<args>]
|
|
|
|
Some useful tmuxifier commands are:
|
|
<command> <alias>
|
|
load-session s Load the specified session layout.
|
|
load-window w Load the specified window layout into current session.
|
|
list ls List all session and window layouts.
|
|
list-sessions lss List session layouts.
|
|
list-windows lsw List window layouts.
|
|
new-session ns Create new session layout and open it with \$EDITOR.
|
|
new-window nw Create new window layout and open it with \$EDITOR.
|
|
edit-session es Edit specified session layout with \$EDITOR.
|
|
edit-window ew Edit specified window layout with \$EDITOR.
|
|
commands List all tmuxifier commands.
|
|
version Print Tmuxifier version.
|
|
help Show this message.
|
|
|
|
See 'tmuxifier help <command>' for information on a specific command."
|
|
;;
|
|
"load-session" )
|
|
echo "usage: tmuxifier load-session <layout_name>
|
|
|
|
Aliases: session, ses, s
|
|
|
|
Create a session using the session layout, unless the session already exists
|
|
in which case, we simply switch to the existing one."
|
|
;;
|
|
"load-window" )
|
|
echo "usage: tmuxifier load-window <layout_name>
|
|
|
|
Aliases: window, win, w
|
|
|
|
Create a new window using the specified window layout in the current session."
|
|
;;
|
|
"new-session" )
|
|
echo "usage: tmuxifier new-session <layout_name>
|
|
|
|
Aliases: new-ses, ns
|
|
|
|
Create a new session layout and open it for editing in \$EDITOR."
|
|
;;
|
|
"new-window" )
|
|
echo "usage: tmuxifier new-window <layout_name>
|
|
|
|
Aliases: new-win, ws
|
|
|
|
Create a new window layout and open it for editing in \$EDITOR."
|
|
;;
|
|
"edit-session" )
|
|
echo "usage: tmuxifier edit-session <layout_name>
|
|
|
|
Aliases: edit-ses, es
|
|
|
|
Open specified session layout for editing in \$EDITOR."
|
|
;;
|
|
"edit-window" )
|
|
echo "usage: tmuxifier edit-window <layout_name>
|
|
|
|
Aliases: edit-win, ew
|
|
|
|
Open specified window layout for editing in \$EDITOR."
|
|
;;
|
|
"completions" )
|
|
echo "usage: tmuxifier completion <command>
|
|
|
|
Print a list of available completions for specified command."
|
|
;;
|
|
"list" )
|
|
echo "usage: tmuxifier list
|
|
|
|
Aliases: ls
|
|
|
|
List all available session and window layouts."
|
|
;;
|
|
"list-sessions" )
|
|
echo "usage: tmuxifier list-sessions
|
|
|
|
Aliases: list-ses, lss
|
|
|
|
List all session layouts."
|
|
;;
|
|
"list-windows" )
|
|
echo "usage: tmuxifier list-windows
|
|
|
|
Aliases: list-win, lsw
|
|
|
|
List all window layouts."
|
|
;;
|
|
* )
|
|
if [ ! -z "$command_path" ]; then
|
|
echo "Sorry, the '$command' command isn't documented yet."
|
|
echo
|
|
echo "You can view the command's source here:"
|
|
echo "$command_path"
|
|
echo
|
|
else
|
|
echo "tmuxifier: no such command '$command'"
|
|
fi
|
|
;;
|
|
esac
|