aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-06-19 22:36:00 +1200
committerTom Ryder <tom@sanctum.geek.nz>2016-06-19 22:36:00 +1200
commitb4f1bdc9d88dd7c091116d70948668f1499efbee (patch)
tree5f3c994b2cd7fcf7a654d40cd1e2492ed579c0db /bin
parentConsolidate URxvt extensions (diff)
downloaddotfiles-b4f1bdc9d88dd7c091116d70948668f1499efbee.tar.gz
dotfiles-b4f1bdc9d88dd7c091116d70948668f1499efbee.zip
Add getmails
Diffstat (limited to 'bin')
-rwxr-xr-xbin/getmails36
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