From c61d23f5bc7c7da79901abe785869635605a4fa1 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 04 Jun 2018 18:48:55 -0400 Subject: .config/offlineimap/cron: New script --- diff --git a/.config/offlineimap/cron b/.config/offlineimap/cron new file mode 100755 index 0000000..592b2a5 --- /dev/null +++ b/.config/offlineimap/cron @@ -0,0 +1,54 @@ +#!/bin/sh + +set -eu + +reap_proc() +{ + local host="${1}" + local user="${2}" + shift 2 + local pid= + local t=0 + + { read -r pid <~/".cache/offlineimap/Account-${host}-${user}.pid"; } \ + 2>/dev/null || return 0 + + while ps -p ${pid} -o cmd | grep -Fq offlineimap; do + case ${t} in + 0 | 10) kill ${pid} 1>/dev/null 2>&1 || return 0;; + 20) return 1;; # Give up after 20 seconds. + esac + sleep 1 + t=$((${t} + 1)) + done + + return 0 +} + +ping_srvr() +{ + local host="${1}" + local user="${2}" + shift 2 + + # ping -c 1 -W 10 "${host}" || return 1 + ssh -o ConnectTimeout=10 "${user}@${host}" exit 0 || return 1 + + return 0 +} + +sync() +{ + local host="${1}" + local user="${2}" + shift 2 + + reap_proc "${host}" "${user}" || return 1 + ping_srvr "${host}" "${user}" || return 1 + offlineimap -a "${host}-${user}" \ + 1>>~/".cache/offlineimap/Account-${host}-${user}.log" 2>&1 & + printf '%d\n' ${!} >~/".cache/offlineimap/Account-${host}-${user}.pid" +} + +#sync 'pehjota.net' 'pj' || : +sync 'libiquity.com' 'patrick.mcdermott' || : diff --git a/.gitignore.d/offlineimap b/.gitignore.d/offlineimap index 91365d3..9161406 100644 --- a/.gitignore.d/offlineimap +++ b/.gitignore.d/offlineimap @@ -7,6 +7,7 @@ !/.config/cron.reboot/offlineimap !/.config/offlineimap/ !/.config/offlineimap/config +!/.config/offlineimap/cron !/.gitignore.d/ !/.gitignore.d/offlineimap -- cgit v0.9.1