From 2eb4a717a5db32b326d725cb7942127a01f549be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Wed, 2 May 2018 22:55:45 +0200 Subject: WIP: replace syncemail with netsync --- config/offlineimap/config | 3 ++- config/offlineimap/plugin.py | 5 +++++ install | 2 +- local/bin/netsync | 49 ++++++++++++++++++++++++++++++++++++++++++++ private | 2 +- profile | 2 -- 6 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 config/offlineimap/plugin.py create mode 100755 local/bin/netsync diff --git a/config/offlineimap/config b/config/offlineimap/config index 6853963..d3bc247 100755 --- a/config/offlineimap/config +++ b/config/offlineimap/config @@ -2,11 +2,13 @@ [general] accounts = email maxsyncaccounts = 4 +pythonfile = ~/.config/offlineimap/plugin.py [Repository email-remote] type = IMAP remotehost = imap.seznam.cz remoteuser = cynerd@email.cz +remotepasseval = get_pass("cynerd@email.cz") ssl = yes sslcacertfile = /etc/ssl/certs/ca-certificates.crt @@ -17,6 +19,5 @@ localfolders = ~/.mail/email [Account email] localrepository = email-local remoterepository = email-remote -autorefresh = 1 postsynchook = ~/.local/sbin/newmail-notify diff --git a/config/offlineimap/plugin.py b/config/offlineimap/plugin.py new file mode 100644 index 0000000..4366979 --- /dev/null +++ b/config/offlineimap/plugin.py @@ -0,0 +1,5 @@ +#! /usr/bin/env python2 +from subprocess import check_output + +def get_pass(account): + return check_output(["pass", "mail/" + account]).splitlines()[0] diff --git a/install b/install index cc7e8c3..943cee4 100755 --- a/install +++ b/install @@ -59,8 +59,8 @@ if ask "Install email synchronization"; then inst local/sbin/newmail-notify ~/.local/sbin/newmail-notify inst_email_sync # Contains: - # inst local/sbin/syncemail ~/.local/sbin/ # inst config/offlineimap/ ~/.config/offlineimap + inst config/offlineimap/plugin.py ~/.config/offlineimap/plugin.py fi if ask "Install mutt configuration"; then diff --git a/local/bin/netsync b/local/bin/netsync new file mode 100755 index 0000000..b571e6e --- /dev/null +++ b/local/bin/netsync @@ -0,0 +1,49 @@ +#!/bin/sh +set -e + +while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + echo "Usage: netsync [OPTION].." + echo "Group network synchronization script." + echo + echo "Options:" + echo " -h, --help" + echo " Print this help text." + echo " --tty" + echo " Spawn its own terminal window to run in" + exit 0 + ;; + --tty) + # TODO dump log somewhere with timestamp + nohup urxvt -title "Network Sync" -e "$0" 2>&1 >/dev/null & + # TODO we might have to do some trickary here if we want more than + # just this one option. + exit 0 + ;; + *) + echo "Unknown argument: $1" >&2 + exit 1 + esac + shift +done + +EXIT_CODE=0 + +run() { + if ! "$@"; then + EXIT_CODE=$? + echo -e "\e[1'31mCommand exited with: $EXIT_CODE\e[0m" + return $EXIT_CODE + fi +} + +echo -e "\e[1;34m========== DAV discover ==========\e[0m" +vdirsyncer discover +echo -e "\e[1;34m========== DAV sync ==========\e[0m" +vdirsyncer sync + +echo -e "\e[1;34m========== Mail ==========\e[0m" +offlineimap + +# TODO also send mails now if there are some delayed mails (also confirm first?) diff --git a/private b/private index 98f3203..7af7405 160000 --- a/private +++ b/private @@ -1 +1 @@ -Subproject commit 98f3203b2b5d889be18508e6d355f6efde54759b +Subproject commit 7af7405e65440a666cbe6468b415546bfc20d202 diff --git a/profile b/profile index 76a201c..1ce3c70 100644 --- a/profile +++ b/profile @@ -7,8 +7,6 @@ export EDITOR=vim # Start music player daemon ~/.service/mpd -q status || ~/.service/mpd start -# Start email synchronization -~/.local/sbin/syncemail # Start syncthing ~/.service/syncthing -q status || ~/.service/syncthing start -- cgit v1.2.3