summaryrefslogtreecommitdiff
path: root/jh.sh
diff options
context:
space:
mode:
Diffstat (limited to 'jh.sh')
-rw-r--r--jh.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/jh.sh b/jh.sh
new file mode 100644
index 0000000..a7c25a9
--- /dev/null
+++ b/jh.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+if [[ -z "$jh_cmd" ]]; then
+ export jh_cmd=$0
+fi
+export jh_short=${jh_cmd##*/}
+
+if [[ -z "$JH_PATH" ]]; then
+ export JH_PATH=/usr/share/jh
+fi
+
+usage() {
+ cmd="${1-$0}"
+ file="$JH_PATH/jh-$cmd.help.txt"
+ if [[ -f "$JH_PATH/jh-$cmd.help.txt" ]]; then
+ sed "s|@cmd@|$jh_short|g" "$file" >> /dev/stderr
+ else
+ echo "$jh_short: Cannot find help file for '$cmd'" >> /dev/stderr
+ fi
+}
+
+run() {
+ if [[ $# < 1 ]]; then
+ usage ''
+ exit 1;
+ fi
+ cmd=$1
+ shift
+
+ file="$JH_PATH/jh-$cmd"
+ if [[ -x "$file" ]]; then
+ "$file" "$@"
+ exit $?
+ else
+ echo "$jh_short: Cannot find command '$cmd'" >> /dev/stderr
+ fi
+}
+
+[[ "$jh_cmd" == "$0" ]] && run "$@"