#!/bin/sh set -eu CONFIG_DIR="${0%/*}/../config" IGNORE_FILE="$CONFIG_DIR/ignore" ME="${0##*/}" case "$ME" in kill-from) case "${1:-}" in *@*) :;; '') echo "E: missing email address argument." >&2 exit 1 ;; *) echo "E: not an email address: $1" >&2 exit 2 ;; esac CHECKPREFIX='From: someone <' CHECKPOSTFIX='>' REPREFIX='^From:.*\<' REPOSTFIX='\>' ARG="$1" ;; kill-thread) case "${1:-}" in *@*) :;; '') echo "E: missing message ID argument." >&2 exit 1 ;; *) echo "E: not a message ID: $1" >&2 exit 2 ;; esac CHECKPREFIX='References: <' CHECKPOSTFIX='>' REPREFIX='^References:.*\<' REPOSTFIX='\>' ARG="${1#<}"; ARG="${ARG%>}" ;; esac if echo "$CHECKPREFIX$1$CHECKPOSTFIX" | egrep -qif $IGNORE_FILE; then echo "I: already ignored: $1" >&2 exit 0 fi ARG_ESCAPED="$(echo "$ARG" | sed -re 's,([.+]),\\\1,g')" cat <<_eof >> $IGNORE_FILE $^# added by $ME @$(date +%s) $REPREFIX$ARG_ESCAPED$REPOSTFIX _eof cd $CONFIG_DIR git-commit -m"$ME $1" ${IGNORE_FILE##*/}