diff options
-rwxr-xr-x | scripts/mailing-list-member-retirement/find-inactive-members.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/mailing-list-member-retirement/find-inactive-members.sh b/scripts/mailing-list-member-retirement/find-inactive-members.sh new file mode 100755 index 0000000..b61da1f --- /dev/null +++ b/scripts/mailing-list-member-retirement/find-inactive-members.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +#readonly LIST_NAME="$1" +#readonly SINCE="$2" + +readonly MBOX="$1" # /var/lib/mailman/archives/private/fsi.mbox/fsi.mbox +readonly LIST_MEMBERS_FILE="$2" # list_members fsi > members.txt +readonly SINCE="$3" + +readonly TMPDIR="$(mktemp -d --suffix=find-inactive-members)" +readonly ACTIVE_MEMBERS_FILE="active-members.txt" +readonly ALL_MEMBERS_FILE="all-members.txt" + +./mailing-list-active-members -mbox "$MBOX" -since "$SINCE" 2> /dev/null \ + | sort -u > "$TMPDIR/$ACTIVE_MEMBERS_FILE" + +sort "$LIST_MEMBERS_FILE" > "$TMPDIR/$ALL_MEMBERS_FILE" + +echo "Inactive members:" >&2 + +diff "$TMPDIR/$ALL_MEMBERS_FILE" "$TMPDIR/$ACTIVE_MEMBERS_FILE" \ + | grep -E "^< " | sed "s/^< //" + +rm "$TMPDIR/$ACTIVE_MEMBERS_FILE" +rm "$TMPDIR/$ALL_MEMBERS_FILE" +rmdir "$TMPDIR" |