chiark / gitweb /
get-sig: Improve shell use a bit. Take base directories relative to $HOME.
authorColin Watson <cjwatson@chiark.greenend.org.uk>
Mon, 2 Dec 2002 05:27:02 +0000 (05:27 +0000)
committerColin Watson <cjwatson@chiark.greenend.org.uk>
Mon, 2 Dec 2002 05:27:02 +0000 (05:27 +0000)
Print an error message and exit if the given signature group doesn't exist.

get-sig

diff --git a/get-sig b/get-sig
index f15776b..24da9bb 100755 (executable)
--- a/get-sig
+++ b/get-sig
@@ -2,19 +2,24 @@
 
 if [ "X$1" == "X" ]; then
   NAME=$(grep '^\*' ~/.siglist | head -1 | tr -s '\t' ' ' | cut -d' ' -f2)
-  if [ "X$NAME" == "X" ]; then
-    echo "Usage: $0 signature-name [pattern]" 2>&1
+  if [ -z "$NAME" ]; then
+    echo "Usage: $0 signature-group [pattern]" >&2
     exit 1
   fi
 else
   NAME=$1
 fi
 
-ARGS=$(grep ^$NAME'\>' ~/.siglist | head -1 | tr -s '\t' ' ' | cut -d' ' -f2-)
-BASEDIR=$(eval echo $(echo $ARGS | cut -d' ' -f1))
-STATICFILE=$(eval echo $(echo $ARGS | cut -d' ' -f2))
-FORTUNEARGS=$(eval echo $(echo $ARGS | cut -d' ' -f3-))
+ARGS=$(grep "^$NAME\\>" ~/.siglist | head -1 | tr -s '\t' ' ' | cut -d' ' -f2-)
+if [ -z "$ARGS" ]; then
+    echo "No such signature group: $NAME" >&2
+    exit 1
+fi
+
+BASEDIR=$(eval echo $(echo "$ARGS" | cut -d' ' -f1))
+STATICFILE=$(eval echo $(echo "$ARGS" | cut -d' ' -f2))
+FORTUNEARGS=$(eval echo $(echo "$ARGS" | cut -d' ' -f3-))
 
-cd $BASEDIR
-cat $STATICFILE
-if [ "$2" ]; then fortune $FORTUNEARGS -m $2; else fortune $FORTUNEARGS; fi
+cd "$HOME/$BASEDIR"
+cat "$STATICFILE"
+if [ "$2" ]; then fortune $FORTUNEARGS -m "$2"; else fortune $FORTUNEARGS; fi