#!/bin/sh # --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: bin/sde-help # Copyright (C) 2006 - 2007 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. A copy of the # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- #Description: Help about the usage of `sde` and the modules #Alias: --help #Alias: man set -e [ -n "$SDEROOT" ] || export SDEROOT=$( cd "${0%/*}/.."; pwd -P ) . $SDEROOT/lib/libsde.in help_list() { local command= local name= desc= alias= echo "Available Commands:" for command in $SDEROOT/bin/sde-*; do # detect command name case "$command" in */sde-*-*) continue ;; */sde-*) id=$( echo "$command" | sed -e 's,.*/sde-,,' ) ;; esac # 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 []" } help_command() { if [ -r "$SDEROOT/doc/man/sde-$1.1" ]; then man "$SDEROOT/doc/man/sde-$1.1" 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_usage exit 1 elif [ "$1" != "${1%-*}" ]; then # don't accept subcommands echo_error "Incorrect Syntax." help_usage elif [ -x "$SDEROOT/bin/sde-$1" ]; then help_command "$1" elif grep -q "^#Alias: $1$" $SDEROOT/bin/sde-* 2> /dev/null; then # use alias x="$( grep -l "^#Alias: $1$" $SDEROOT/bin/sde-* 2> /dev/null | head -n 1 | sed -e 's,.*/sde-,,' )" help_command "$x" else # unknown command echo_error "Command '$COLOR_MESSAGE$1$COLOR_NORMAL' doesn't exist." help_list exit 2 fi