diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-06-19 22:36:00 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-06-19 22:36:00 +1200 |
commit | b4f1bdc9d88dd7c091116d70948668f1499efbee (patch) | |
tree | 5f3c994b2cd7fcf7a654d40cd1e2492ed579c0db /bin | |
parent | Consolidate URxvt extensions (diff) | |
download | dotfiles-b4f1bdc9d88dd7c091116d70948668f1499efbee.tar.gz dotfiles-b4f1bdc9d88dd7c091116d70948668f1499efbee.zip |
Add getmails
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/getmails | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/getmails b/bin/getmails new file mode 100755 index 00000000..d8383564 --- /dev/null +++ b/bin/getmails @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +# +# Run getmail(1) over every getmailrc.* file in ~/.getmail (I didn't like the +# included getmails(1) script). +# +# Author: Tom Ryder <tom@sanctum.geek.nz> +# Copyright: 2016 +# +self=getmails + +# Check for existence of needed commands +hash flock getmail try || exit + +# Create a directory for our lockfiles if need be; we'll just leave it there +lockdir=${TMPDIR:-/tmp}/getmail-$UID +if ! mkdir -p -- "$lockdir" ; then + printf "%s: Could not create lockdir %s\n" \ + "$self" "$lockdir" >&2 + exit 1 +fi + +# Iterate through the getmailrc.* files in $GETMAIL if defined, or +# $HOME/.getmail if not +for rcfile in "${GETMAIL:-$HOME/.getmail}"/getmailrc.* ; do + + # Run the current rcfile with getmail quietly, using its basename with + # .lock appended as the lockfile in the lock directory + ( + flock -n 9 || exit 1 + try -i 15 -n 3 getmail --rcfile "$rcfile" "$@" + ) 9>"$lockdir"/"${rcfile##*/}".lock & +done + +# Wait for all of the enqueued tasks to finish +wait |