aboutsummaryrefslogtreecommitdiff
path: root/local/sbin
diff options
context:
space:
mode:
Diffstat (limited to 'local/sbin')
-rwxr-xr-xlocal/sbin/annoyme-request50
-rwxr-xr-xlocal/sbin/syncemail36
2 files changed, 86 insertions, 0 deletions
diff --git a/local/sbin/annoyme-request b/local/sbin/annoyme-request
new file mode 100755
index 0000000..28a9864
--- /dev/null
+++ b/local/sbin/annoyme-request
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+DOT_ANNOYME=~/.annoyme
+
+NAME=$1
+EC=2
+
+onexit() {
+ rm -f "$DOT_ANNOYME/$NAME.script"
+ rm -f "$DOT_ANNOYME/$NAME.pid"
+ rm -f "$DOT_ANNOYME/$NAME.desc"
+ rm -f "$DOT_ANNOYME/$NAME.out"
+ kill $SLEEPID 2>/dev/null
+ exit $EC
+}
+trap onexit EXIT INT QUIT TERM ABRT
+
+mkdir -p $DOT_ANNOYME
+
+echo "#!/bin/bash" > "$DOT_ANNOYME/$NAME.script"
+while read -r LINE; do
+ echo "$LINE" >> "$DOT_ANNOYME/$NAME.script"
+done
+chmod +x "$DOT_ANNOYME/$NAME.script"
+echo "$$" > "$DOT_ANNOYME/$NAME.pid"
+echo "$2" > "$DOT_ANNOYME/$NAME.desc"
+
+onsuccess() {
+ echo "User intervention successful." 1>&2
+ cat "$DOT_ANNOYME/$NAME.out"
+ EC=0
+ exit
+}
+
+onfailure() {
+ echo "User intervention failed." 1>&2
+ EC=1
+ exit
+}
+
+trap onsuccess SIGUSR1
+trap onfailure SIGUSR2
+
+echo "Waiting for user intervention using annoyme" 1>&2
+notify-send -a "$NAME" "$NAME: User intervention required" "$2"
+sleep 3h &
+SLEEPID=$!
+wait $SLEEPID
+echo "User intervention timed out." 1>&2
+notify-send -a "$NAME" "$NAME: User intervention request timed out."
diff --git a/local/sbin/syncemail b/local/sbin/syncemail
new file mode 100755
index 0000000..95deb7e
--- /dev/null
+++ b/local/sbin/syncemail
@@ -0,0 +1,36 @@
+#!/usr/bin/python2
+# This starts offlineimap, but first it requests passwords from pass by user
+# notification launching script at front.
+import os
+import sys
+import subprocess
+from offlineimap import OfflineImap
+
+frontscript = """
+echo "Asking for gpg password to access pass" 1>&2
+pass mail/cynerd@email.cz
+echo "All done" 1>&2
+"""
+annoyme = [
+ os.path.expanduser("~/.local/sbin/annoyme-request"),
+ "syncemail",
+ "Imap email synchronization service password request."
+ ]
+
+anproc = subprocess.Popen(annoyme, stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE)
+anproc.stdin.write(frontscript)
+anproc.stdin.close()
+output = anproc.stdout.read().splitlines()
+excode = anproc.wait()
+
+if excode != 0:
+ print("Authentication failed. Please start emailsync again")
+ sys.exit(1)
+print(output)
+
+sys.argv.append('-k')
+sys.argv.append('Repository_email-remote:remotepass=' + output[0])
+
+
+OfflineImap().run()