#!/usr/bin/python2 # This starts offlineimap, but first it requests passwords from pass import os import sys import subprocess import daemon import lockfile from offlineimap import OfflineImap if os.path.isfile('/home/cynerd/.run/syncemail.pid.lock'): sys.exit(0) accounts = [ ["email", "mail/cynerd@email.cz"], ] for acc in accounts: pproc = subprocess.Popen("pass " + acc[1], stdout=subprocess.PIPE, shell=True) output = pproc.stdout.read().rstrip() if pproc.wait() != 0: print("Password receive failed.") sys.exit(1) sys.argv.append('-k') sys.argv.append('Repository_' + acc[0] + '-remote:remotepass=' + output) sys.argv.append('-s') # output to syslog with daemon.DaemonContext( pidfile=lockfile.FileLock('/home/cynerd/.run/syncemail.pid') ): OfflineImap().run()