chiark / gitweb /
set -e to make it easier to kill this
[bin.git] / get-sig
diff --git a/get-sig b/get-sig
index 24da9bb73b3b293fd525e57cdf462993ca39136f..1b1620d3e8815c5c61b6b648ab5668cac639b956 100755 (executable)
--- a/get-sig
+++ b/get-sig
@@ -1,7 +1,7 @@
-#! /bin/bash
+#! /bin/sh
 
-if [ "X$1" == "X" ]; then
-  NAME=$(grep '^\*' ~/.siglist | head -1 | tr -s '\t' ' ' | cut -d' ' -f2)
+if [ -z "$1" ]; then
+  NAME=$(grep '^\*' ~/.siglist | head -1 | tr -s '\t' ' ' | cut -d' ' -f2)
   if [ -z "$NAME" ]; then
     echo "Usage: $0 signature-group [pattern]" >&2
     exit 1
@@ -10,7 +10,7 @@ else
   NAME=$1
 fi
 
-ARGS=$(grep "^$NAME\\>" ~/.siglist | head -1 | tr -s '\t' ' ' | cut -d' ' -f2-)
+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
@@ -18,7 +18,17 @@ 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-))
+FORTUNEARGS=
+for arg in $(eval echo $(echo "$ARGS" | cut -d' ' -f3-)); do
+    case $arg in
+       ./*)
+           FORTUNEARGS="${FORTUNEARGS:+$FORTUNEARGS }$HOME/$BASEDIR/${arg#./}"
+           ;;
+       *)
+           FORTUNEARGS="${FORTUNEARGS:+$FORTUNEARGS }$arg"
+           ;;
+    esac
+done
 
 cd "$HOME/$BASEDIR"
 cat "$STATICFILE"