X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?p=bin.git;a=blobdiff_plain;f=get-sig;h=1b1620d3e8815c5c61b6b648ab5668cac639b956;hp=f15776ba195fe755c4e6845c3642667f23f88b52;hb=e470a222375a6f1b03b3bb72d9b2b994da8de8bb;hpb=88c7e302a60194f68bc1b6d20c1547b62e1436d3 diff --git a/get-sig b/get-sig old mode 100644 new mode 100755 index f15776b..1b1620d --- a/get-sig +++ b/get-sig @@ -1,20 +1,35 @@ -#! /bin/bash +#! /bin/sh -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 "$1" ]; then + NAME=$(grep '^\*' ~/.siglist | head -n 1 | tr -s '\t' ' ' | cut -d' ' -f2) + 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 -n 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= +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 $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