#!/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: <something> <'
    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##*/}