#! /bin/sh # Depends: lockfile-progs, ssh set -e if [ -z "$1" ]; then echo "Usage: $0 hostname" 2>&1 exit 1 fi DIR="$HOME/tmp/.bsmtp" mkdir -p "$DIR" cd "$DIR" HOST="$1" # TODO: Note that this scheme may currently lose mail if the local disk # fills up! This is obviously very bad. Fix this. # By default, lockfile-create gives up after three minutes, so don't cron # this any more frequently than that without supplying a --retry argument. lockfile-create "$HOST" lockfile-touch "$HOST" & TOUCH="$!" trap 'kill "$TOUCH"; lockfile-remove "$HOST"' EXIT ERR HUP INT QUIT TERM ssh -2 -i "$HOME/.ssh/id-bsmtp-$HOST" -C "$HOST" bsmtp-pull-server > "$HOST" [ -s "$HOST" ] || exit 0 /usr/sbin/sendmail -bS < "$HOST" rm -f "$HOST" exit 0