From 55cf26b9e61309324fd991e398a5f3a25c98fbeb Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 2 Jun 2013 20:09:59 +0300 Subject: [PATCH] Re-organize and improve help command and help info for each command --- libexec/tmuxifier-alias | 8 ++ libexec/tmuxifier-commands | 9 ++ libexec/tmuxifier-completions | 10 +- libexec/tmuxifier-current-session | 8 ++ libexec/tmuxifier-edit-session | 10 ++ libexec/tmuxifier-edit-window | 10 ++ libexec/tmuxifier-help | 122 ++++++------------------- libexec/tmuxifier-list | 10 ++ libexec/tmuxifier-list-sessions | 10 ++ libexec/tmuxifier-list-windows | 10 ++ libexec/tmuxifier-load-session | 11 +++ libexec/tmuxifier-load-window | 10 ++ libexec/tmuxifier-new-session | 10 ++ libexec/tmuxifier-new-window | 10 ++ libexec/tmuxifier-resolve-command-path | 8 ++ libexec/tmuxifier-version | 8 ++ 16 files changed, 170 insertions(+), 94 deletions(-) diff --git a/libexec/tmuxifier-alias b/libexec/tmuxifier-alias index 2e4dcb9..f5b1e32 100755 --- a/libexec/tmuxifier-alias +++ b/libexec/tmuxifier-alias @@ -2,6 +2,14 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier alias + +Resolve a command alias to it's full name." + exit +fi + case "$1" in "session" | "ses" | "s" ) echo "load-session" diff --git a/libexec/tmuxifier-commands b/libexec/tmuxifier-commands index 2d06e25..db1dfe0 100755 --- a/libexec/tmuxifier-commands +++ b/libexec/tmuxifier-commands @@ -2,6 +2,15 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier commands + +List all available commands, includes internal commands not intended for +normal use by users." + exit +fi + shopt -s nullglob { for path in ${PATH//:/$'\n'}; do diff --git a/libexec/tmuxifier-completions b/libexec/tmuxifier-completions index 57598ad..ad06970 100755 --- a/libexec/tmuxifier-completions +++ b/libexec/tmuxifier-completions @@ -2,6 +2,14 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier completion + +Print a list of available completions for specified command." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then tmuxifier-commands @@ -9,7 +17,7 @@ if [ "$1" == "--complete" ]; then fi has-completions() { - grep -i "^# provide tmuxifier completions" "$1" >/dev/null + grep -i "^# Provide tmuxifier completions" "$1" >/dev/null } command="$1" diff --git a/libexec/tmuxifier-current-session b/libexec/tmuxifier-current-session index 0baa21e..706ca01 100755 --- a/libexec/tmuxifier-current-session +++ b/libexec/tmuxifier-current-session @@ -2,6 +2,14 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier current-session + +Outputs the name of the current Tmux session." + exit +fi + if [ -n "$TMUX" ]; then for item in $(tmux list-pane -F "#{session_name}");do echo $item diff --git a/libexec/tmuxifier-edit-session b/libexec/tmuxifier-edit-session index 3ec5e6e..a6f0cbc 100755 --- a/libexec/tmuxifier-edit-session +++ b/libexec/tmuxifier-edit-session @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier edit-session + +Aliases: edit-ses, es + +Open specified session layout for editing in \$EDITOR." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then for item in $(tmuxifier-list-sessions); do diff --git a/libexec/tmuxifier-edit-window b/libexec/tmuxifier-edit-window index 89ff1bd..5199292 100755 --- a/libexec/tmuxifier-edit-window +++ b/libexec/tmuxifier-edit-window @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier edit-window + +Aliases: edit-win, ew + +Open specified window layout for editing in \$EDITOR." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then for item in $(tmuxifier-list-windows); do diff --git a/libexec/tmuxifier-help b/libexec/tmuxifier-help index 08befed..c2eb96c 100755 --- a/libexec/tmuxifier-help +++ b/libexec/tmuxifier-help @@ -2,25 +2,25 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + tmuxifier-help + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then tmuxifier-commands exit fi +has-help() { + grep -i "^# Provide tmuxifier help" "$1" >/dev/null +} + command="$1" - -# Ensure we have the correct command name in case an alias was given. -if [ -n "$command" ]; then - ! resolved="$(tmuxifier-alias "$command")" - if [ -n "$resolved" ]; then - command="$resolved" - fi -fi - -case "$command" in - "" ) - echo "usage: tmuxifier [] +if [ -z "$command" ]; then + echo "usage: tmuxifier [] Some useful tmuxifier commands are: @@ -38,87 +38,23 @@ Some useful tmuxifier commands are: help Show this message. See 'tmuxifier help ' for information on a specific command." - ;; - "load-session" ) - echo "usage: tmuxifier load-session + exit +fi -Aliases: session, ses, s +! command_path="$(tmuxifier-resolve-command-path "$command")" -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 +if [ -z "$command_path" ]; then + echo "tmuxifier: no such command '$command'" >&2 + exit 1 +fi -Aliases: window, win, w - -Create a new window using the specified window layout in the current session." - ;; - "new-session" ) - echo "usage: tmuxifier new-session - -Aliases: new-ses, ns - -Create a new session layout and open it for editing in \$EDITOR." - ;; - "new-window" ) - echo "usage: tmuxifier new-window - -Aliases: new-win, ws - -Create a new window layout and open it for editing in \$EDITOR." - ;; - "edit-session" ) - echo "usage: tmuxifier edit-session - -Aliases: edit-ses, es - -Open specified session layout for editing in \$EDITOR." - ;; - "edit-window" ) - echo "usage: tmuxifier edit-window - -Aliases: edit-win, ew - -Open specified window layout for editing in \$EDITOR." - ;; - "completions" ) - echo "usage: tmuxifier completion - -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." - ;; - * ) - ! command_path="$(tmuxifier-resolve-command-path "$command")" - if [ -n "$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'" >&2 - exit 1 - fi - ;; -esac +if has-help "$command_path"; then + shift + exec "$command_path" --help "$@" +else + echo "Sorry, the '$command' command isn't documented yet." + echo "" + echo "You can view the command's source here:" + echo "$command_path" + echo "" +fi diff --git a/libexec/tmuxifier-list b/libexec/tmuxifier-list index dcfbe4b..d3d18b2 100755 --- a/libexec/tmuxifier-list +++ b/libexec/tmuxifier-list @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier list + +Aliases: ls + +List all available session and window layouts." + exit +fi + echo "" echo "Sessions:" tmuxifier-list-sessions diff --git a/libexec/tmuxifier-list-sessions b/libexec/tmuxifier-list-sessions index be7c993..4bbde66 100755 --- a/libexec/tmuxifier-list-sessions +++ b/libexec/tmuxifier-list-sessions @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier list-sessions + +Aliases: list-ses, lss + +List all session layouts." + exit +fi + list=$(find -L "$TMUXIFIER_LAYOUT_PATH" -name "*.session.sh") for file in $list; do file=${file/$TMUXIFIER_LAYOUT_PATH\//} diff --git a/libexec/tmuxifier-list-windows b/libexec/tmuxifier-list-windows index ccc4149..94ccca1 100755 --- a/libexec/tmuxifier-list-windows +++ b/libexec/tmuxifier-list-windows @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier list-windows + +Aliases: list-win, lsw + +List all window layouts." + exit +fi + list=$(find -L "$TMUXIFIER_LAYOUT_PATH" -name "*.window.sh") for file in $list; do file=${file/$TMUXIFIER_LAYOUT_PATH\//} diff --git a/libexec/tmuxifier-load-session b/libexec/tmuxifier-load-session index 5aae955..87a88b3 100755 --- a/libexec/tmuxifier-load-session +++ b/libexec/tmuxifier-load-session @@ -2,6 +2,17 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier load-session + +Aliases: session, ses, s + +Create a session using the session layout, unless the session already exists +in which case, we simply attach/switch to the existing one." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then for item in $(tmuxifier-list-sessions); do diff --git a/libexec/tmuxifier-load-window b/libexec/tmuxifier-load-window index cb5e5ef..5153796 100755 --- a/libexec/tmuxifier-load-window +++ b/libexec/tmuxifier-load-window @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier load-window + +Aliases: window, win, w + +Create a new window using the specified window layout in the current session." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then for item in $(tmuxifier-list-windows); do diff --git a/libexec/tmuxifier-new-session b/libexec/tmuxifier-new-session index e8ce920..58a19b6 100755 --- a/libexec/tmuxifier-new-session +++ b/libexec/tmuxifier-new-session @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier new-session + +Aliases: new-ses, ns + +Create a new session layout and open it for editing in \$EDITOR." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then for item in $(tmuxifier-list-sessions); do diff --git a/libexec/tmuxifier-new-window b/libexec/tmuxifier-new-window index a405446..010b3ff 100755 --- a/libexec/tmuxifier-new-window +++ b/libexec/tmuxifier-new-window @@ -2,6 +2,16 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier new-window + +Aliases: new-win, ws + +Create a new window layout and open it for editing in \$EDITOR." + exit +fi + # Provide tmuxifier completions if [ "$1" == "--complete" ]; then for item in $(tmuxifier-list-windows); do diff --git a/libexec/tmuxifier-resolve-command-path b/libexec/tmuxifier-resolve-command-path index bf7a83e..087190c 100755 --- a/libexec/tmuxifier-resolve-command-path +++ b/libexec/tmuxifier-resolve-command-path @@ -2,6 +2,14 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier resolve-command-path + +Outputs the absolute path to the given command or command alias." + exit +fi + if [ -n "$1" ]; then ! command_path="$(command -v "tmuxifier-$1")" if [ -z "$command_path" ]; then diff --git a/libexec/tmuxifier-version b/libexec/tmuxifier-version index 0495940..56c50b8 100755 --- a/libexec/tmuxifier-version +++ b/libexec/tmuxifier-version @@ -2,4 +2,12 @@ set -e [ -n "$TMUXIFIER_DEBUG" ] && set -x +# Provide tmuxifier help +if [ "$1" == "--help" ]; then + echo "usage: tmuxifier version + +Outputs Tmuxifier version." + exit +fi + echo "0.5.0"