#! /bin/sh 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 -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 "$HOME/$BASEDIR" cat "$STATICFILE" if [ "$2" ]; then fortune $FORTUNEARGS -m "$2"; else fortune $FORTUNEARGS; fi