aboutsummaryrefslogtreecommitdiffstats
path: root/_bin
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@outlook.com>2016-09-09 16:50:39 +0800
committerAaron LI <aaronly.me@outlook.com>2016-09-09 16:50:39 +0800
commit50ce0cf0e0933312a5b51eace26d5821379e731d (patch)
tree876bef64279ee109391c2a433990780dd8aef98d /_bin
parentdda8a74155ec276f002f4ddd381a235614e2bf4c (diff)
downloaddotfiles-50ce0cf0e0933312a5b51eace26d5821379e731d.tar.bz2
Add _bin/get_mail.sh for better handle of email fetch
Since ``offlineimap`` sometimes just gets stuck, which blocks new instance from running, this little script is composed to better handle this stuck by first force kill existing instance. However, this script in current state cannot work well with ``mu4e``.
Diffstat (limited to '_bin')
-rwxr-xr-x_bin/get_mail.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/_bin/get_mail.sh b/_bin/get_mail.sh
new file mode 100755
index 0000000..a8288cc
--- /dev/null
+++ b/_bin/get_mail.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# Run the command to get emails, and record its PID, which is used
+# to kill the program before run it again.
+# This is an workaround to solve the stuck issue with `offlineimap`.
+#
+
+# Command to get emails
+GET_CMD="offlineimap -o -1"
+
+# PID file
+PID_FILE="${HOME}/.cache/get_mail.pid"
+
+# Log file
+LOG_FILE="${HOME}/.cache/get_mail.log"
+
+
+# Kill the previous process at first.
+# For `offlineimap`, it sometimes just stucks ...
+if [ -e "${PID_FILE}" ]; then
+ kill -SIGKILL `cat ${PID_FILE}`
+ rm ${PID_FILE}
+fi
+
+if [ -e "${LOG_FILE}" ]; then
+ mv ${LOG_FILE} ${LOG_FILE}.old
+fi
+
+${GET_CMD} > ${LOG_FILE} 2>&1 &
+echo $! > ${PID_FILE}