From 439c8b273b6203af49242baf18eb7c22b3c4a035 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Mon, 6 Nov 2017 17:50:04 +0100 Subject: simplify offlineimap setup use xdg_spec instead of silly variable expansion patch --- config/offlineimap/config | 49 +++++++++++++++++++++++++++++++++ config/offlineimap/offlineimap.py | 4 +++ config/offlineimap/offlineimap@.service | 14 ++++++++++ offlineimap/expandvars.patch | 13 --------- offlineimap/offlineimap.py | 4 --- offlineimap/offlineimap@.service | 14 ---------- offlineimap/offlineimaprc | 49 --------------------------------- setup.py | 33 +--------------------- 8 files changed, 68 insertions(+), 112 deletions(-) create mode 100644 config/offlineimap/config create mode 100644 config/offlineimap/offlineimap.py create mode 100644 config/offlineimap/offlineimap@.service delete mode 100644 offlineimap/expandvars.patch delete mode 100644 offlineimap/offlineimap.py delete mode 100644 offlineimap/offlineimap@.service delete mode 100644 offlineimap/offlineimaprc diff --git a/config/offlineimap/config b/config/offlineimap/config new file mode 100644 index 0000000..c54570f --- /dev/null +++ b/config/offlineimap/config @@ -0,0 +1,49 @@ +# offlineimap config file + +[general] +accounts = FAUMail,MUHQ +maxsyncaccounts = 2 +pythonfile = ~/.config/offlineimap/offlineimap.py + +[Account FAUMail] +localrepository = LocalFAU +remoterepository = FAU + +autorefresh=1 +quick=10 + +[Repository FAU] +type = IMAP +remotehost = faumail.uni-erlangen.de +remoteport = 993 +remoteuser = aj46ezos +remotepasseval = get_passwd("FAU") +ssl=yes +cert_fingerprint = BB9EE687E92693794C752F57C53483076DEF2755 +newmail_hook = lambda: __import__("os").system("i3-nagbar -m \"new mail in FAU\" > /dev/null 2>&1 &") + +[Repository LocalFAU] +type = Maildir +localfolders = ~/.local/share/maildir/FAU/ + + +[Account MUHQ] +localrepository=LocalMUHQ +remoterepository=MUHQ + +autorefresh=1 +quick=10 + +[Repository MUHQ] +type = IMAP +remotehost = antares.uberspace.de +remoteport = 993 +remoteuser = muhq +remotepasseval = get_passwd("MUHQ") +ssl=yes +cert_fingerprint = B53A1586456E35E454DA3581980330903753AD3E +newmail_hook = lambda: __import__("os").system("i3-nagbar -m \"new mail in MUHQ\" > /dev/null 2>&1 &") + +[Repository LocalMUHQ] +type = Maildir +localfolders = ~/.local/share/maildir/MUHQ/ diff --git a/config/offlineimap/offlineimap.py b/config/offlineimap/offlineimap.py new file mode 100644 index 0000000..8172d4d --- /dev/null +++ b/config/offlineimap/offlineimap.py @@ -0,0 +1,4 @@ +from subprocess import check_output + +def get_passwd(account): + return check_output("pass email/" + account, shell=True).rstrip().split("\n")[0] diff --git a/config/offlineimap/offlineimap@.service b/config/offlineimap/offlineimap@.service new file mode 100644 index 0000000..67c7e2b --- /dev/null +++ b/config/offlineimap/offlineimap@.service @@ -0,0 +1,14 @@ +[Unit] +Description=Start offlineimap as a daemon +Requires=network-online.target +After=network.target + +[Service] +User=%i +EnvironmentFile=/etc/systemd/system/offlineimap@fischerling.env +ExecStart=/usr/bin/offlineimap +KillSignal=SIGUSR2 +# Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/offlineimap/expandvars.patch b/offlineimap/expandvars.patch deleted file mode 100644 index 3f36fae..0000000 --- a/offlineimap/expandvars.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/offlineimap/repository/IMAP.py b/offlineimap/repository/IMAP.py -index e61f53d..8da0e19 100644 ---- a/offlineimap/repository/IMAP.py -+++ b/offlineimap/repository/IMAP.py -@@ -378,7 +378,7 @@ class IMAPRepository(BaseRepository): - # 3. read password from file specified in Repository 'remotepassfile' - passfile = self.getconf('remotepassfile', None) - if passfile != None: -- fd = codecs.open(os.path.expanduser(passfile), 'r', 'UTF-8') -+ fd = codecs.open(os.path.expandvars(os.path.expanduser(passfile)), 'r', 'UTF-8') - password = fd.readline().strip() - fd.close() - return password.encode('UTF-8') diff --git a/offlineimap/offlineimap.py b/offlineimap/offlineimap.py deleted file mode 100644 index 8172d4d..0000000 --- a/offlineimap/offlineimap.py +++ /dev/null @@ -1,4 +0,0 @@ -from subprocess import check_output - -def get_passwd(account): - return check_output("pass email/" + account, shell=True).rstrip().split("\n")[0] diff --git a/offlineimap/offlineimap@.service b/offlineimap/offlineimap@.service deleted file mode 100644 index 67c7e2b..0000000 --- a/offlineimap/offlineimap@.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Start offlineimap as a daemon -Requires=network-online.target -After=network.target - -[Service] -User=%i -EnvironmentFile=/etc/systemd/system/offlineimap@fischerling.env -ExecStart=/usr/bin/offlineimap -KillSignal=SIGUSR2 -# Restart=always - -[Install] -WantedBy=multi-user.target diff --git a/offlineimap/offlineimaprc b/offlineimap/offlineimaprc deleted file mode 100644 index f514afd..0000000 --- a/offlineimap/offlineimaprc +++ /dev/null @@ -1,49 +0,0 @@ -# offlineimap config file - -[general] -accounts = FAUMail,MUHQ -maxsyncaccounts = 2 -pythonfile = $DOTFILES_LOCATION/offlineimap/offlineimap.py - -[Account FAUMail] -localrepository = LocalFAU -remoterepository = FAU - -autorefresh=1 -quick=10 - -[Repository FAU] -type = IMAP -remotehost = faumail.uni-erlangen.de -remoteport = 993 -remoteuser = aj46ezos -remotepasseval = get_passwd("FAU") -ssl=yes -cert_fingerprint = BB9EE687E92693794C752F57C53483076DEF2755 -newmail_hook = lambda: __import__("os").system("i3-nagbar -m \"new mail in FAU\" > /dev/null 2>&1 &") - -[Repository LocalFAU] -type = Maildir -localfolders = ~/.local/share/maildir/FAU/ - - -[Account MUHQ] -localrepository=LocalMUHQ -remoterepository=MUHQ - -autorefresh=1 -quick=10 - -[Repository MUHQ] -type = IMAP -remotehost = antares.uberspace.de -remoteport = 993 -remoteuser = muhq -remotepasseval = get_passwd("MUHQ") -ssl=yes -cert_fingerprint = B53A1586456E35E454DA3581980330903753AD3E -newmail_hook = lambda: __import__("os").system("i3-nagbar -m \"new mail in MUHQ\" > /dev/null 2>&1 &") - -[Repository LocalMUHQ] -type = Maildir -localfolders = ~/.local/share/maildir/MUHQ/ diff --git a/setup.py b/setup.py index 31760ee..d917acf 100755 --- a/setup.py +++ b/setup.py @@ -55,33 +55,6 @@ def dotfile_loc_helper(quiet): else: return e -def offlineimap_passwd(quiet): - """Write the environment file for the systemd unit""" - res = dotfile_loc_helper(quiet) - if res: - return res - env_file_path = "/etc/systemd/system/offlineimap@fischerling.env" - if not os.path.exists(env_file_path): - try: - subprocess.run(["get_dotfiles_location", ">", - env_file_path]) - except Exception as e: - if isinstance(e, PermissionError): - subprocess.run(["get_dotfiles_location", "|", "sudo", "tee", "-a", - env_file_path, ">", "/dev/null"]) - else: - return e - -def offlineimap_warn(quiet): - """Print a warning about my offlineimap setup""" - - if not quiet: - print("! WARNING !") - print("My offlineimap setup uses a patched version !") - print("The patch can be found at offlineimap/expandvars.patch.") - print("Only proceed if you know what you are doing") - if input("Want to continue ? (y/N) ") not in ["Y","y"]: - exit("Aborting.") # targets are a list of tuples and/or functions @@ -125,11 +98,7 @@ targets = { [("config/terminator/config", home_dir + "/.config/terminator/config")], "offlineimap": - [offlineimap_warn, - ("offlineimap/offlineimaprc", home_dir + "/.offlineimaprc"), - ("offlineimap/offlineimap@.service", - "/etc/systemd/system/offlineimap@" + user + ".service"), - offlineimap_passwd], + [("config/offlineimap", home_dir + "/.config/offlineimap")], "msmtp": [("msmtprc", home_dir + "/.msmtprc")], "FAU": -- cgit v1.2.3