diff --git a/bin/sde-help b/bin/sde-help index 32e3c1e..4bd69ad 100755 --- a/bin/sde-help +++ b/bin/sde-help @@ -22,13 +22,44 @@ set -e export SDEROOT=$( cd "${0%/*}/.."; pwd -P ) . $SDEROOT/lib/libsde.in -. $SDEROOT/lib/sde-help.in + +help_list() { + local command= + local name= desc= alias= + + echo "Available Commands:" + for command in $SDEROOT/bin/sde-*; do + # detect command name + id=$( echo "$command" | sed -e 's,.*/sde-,,' ) + # optional description + desc=$( sed -n -e 's,^#Description: \(.*\)$,\1,p' "$command" ) + # and valid aliases + alias=$( sed -n -e 's,^#Alias: \([^ ]*\)$,\1,p' "$command" | tr '\n' ' ' ) + + echo -e "\t* $id${alias:+\t(${alias%% })}" + if [ -n "$desc" ]; then + echo -e "\t\t$desc" + fi + done +} + +help_usage() { + echo "Usage: sde help [<command>]" +} + +help_command() { + if [ -r "$SDEROOT/doc/man/sde-$1.txt" ]; then + cat "$SDEROOT/doc/man/sde-$1.txt" + else + echo_warning "'$COLOR_MESSAGE${1}$COLOR_NORMAL' doesn't provide help." + fi +} if [ $# -eq 0 -o -z "$1" ]; then help_list elif [ $# -gt 1 ]; then echo_error "Incorrect Syntax." - help_command 'help' + help_usage exit 1 elif [ -x "$SDEROOT/bin/sde-$1" ]; then help_command "$1"