From d0c0f47e040f362c4c85c7042a64a34d13a020f8 Mon Sep 17 00:00:00 2001 From: Kiril Vladimiroff Date: Thu, 12 Nov 2020 10:29:34 +0200 Subject: [PATCH] systemd: replace offlineimap with mbsync --- bin/offlineimap.py | 38 ------------------- mail/offlineimaprc | 27 ------------- .../{offlineimap.service => mbsync.service} | 7 ++-- systemd/user/mbsync.timer | 10 +++++ systemd/user/offlineimap.timer | 10 ----- 5 files changed, 13 insertions(+), 79 deletions(-) delete mode 100755 bin/offlineimap.py delete mode 100644 mail/offlineimaprc rename systemd/user/{offlineimap.service => mbsync.service} (55%) create mode 100644 systemd/user/mbsync.timer delete mode 100644 systemd/user/offlineimap.timer diff --git a/bin/offlineimap.py b/bin/offlineimap.py deleted file mode 100755 index 31fa07c..0000000 --- a/bin/offlineimap.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -sys.path.append(os.path.dirname(os.path.abspath(__file__))) # noqa - -import kdewallet5 - -PERSONAL_FOLDERS = { - 'archive': '[Gmail]/All Mail', - 'drafts': '[Gmail]/Drafts', - 'flagged': '[Gmail]/Starred', - 'sent': '[Gmail]/Sent Mail', - 'trash': '[Gmail]/Trash', -} -REVERSE_PERSONAL_FOLDERS = {v: k for k, v in PERSONAL_FOLDERS.items()} -HIDE_FOLDERS = {'[Gmail]/Trash', '[Gmail]/Important', '[Gmail]/Spam'} - - -def get_password(wallet, folder_name, key): - with kdewallet5.Wallet(wallet, "offlineimap") as wallet: - return wallet.read_password(folder_name, key) - - -def personal_local_nametrans(folder_name): - return PERSONAL_FOLDERS.get(folder_name, folder_name) - - -def personal_remote_nametrans(folder_name): - return REVERSE_PERSONAL_FOLDERS.get(folder_name, folder_name) - - -def folder_filter(folder_name): - return folder_name not in HIDE_FOLDERS - - -if __name__ == '__main__': - print(get_password(sys.argv[1], sys.argv[2], sys.argv[3])) diff --git a/mail/offlineimaprc b/mail/offlineimaprc deleted file mode 100644 index 93eb637..0000000 --- a/mail/offlineimaprc +++ /dev/null @@ -1,27 +0,0 @@ -[general] -ui = ttyui -accounts = Personal -pythonfile=$DOTFILES/bin/offlineimap.py -fsync = False - -[Account Personal] -localrepository = Personal-Local -remoterepository = Personal-Remote - -[Repository Personal-Local] -type = Maildir -localfolders = ~/mail/personal -nametrans = personal_local_nametrans - - -[Repository Personal-Remote] -sslcacertfile = /etc/ssl/certs/ca-certificates.crt -maxconnections = 1 -type = Gmail -remoteuser = kiril@vladimiroff.org -remotepasseval = get_password(wallet='kdewallet', - folder_name='Passwords', - key='gmail-personal') -realdelete = no -nametrans = personal_remote_nametrans -folderfilter = folder_filter diff --git a/systemd/user/offlineimap.service b/systemd/user/mbsync.service similarity index 55% rename from systemd/user/offlineimap.service rename to systemd/user/mbsync.service index fb4fd83..a4bbc2d 100644 --- a/systemd/user/offlineimap.service +++ b/systemd/user/mbsync.service @@ -1,13 +1,12 @@ [Unit] -Description=Offlineimap Service +Description=mbsync Service Wants=network-online.target After=network-online.target [Service] Type=oneshot -Environment= -TimeoutSec=120 -ExecStart=/usr/bin/offlineimap -o +TimeoutSec=360 +ExecStart=/usr/bin/mbsync -a [Install] WantedBy=mail.target diff --git a/systemd/user/mbsync.timer b/systemd/user/mbsync.timer new file mode 100644 index 0000000..3a141c0 --- /dev/null +++ b/systemd/user/mbsync.timer @@ -0,0 +1,10 @@ +[Unit] +Description=mbsync Query Timer + +[Timer] +OnUnitInactiveSec=5min +OnBootSec=1min +Unit=mbsync.service + +[Install] +WantedBy=mail.target diff --git a/systemd/user/offlineimap.timer b/systemd/user/offlineimap.timer deleted file mode 100644 index dddc13a..0000000 --- a/systemd/user/offlineimap.timer +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Offlineimap Query Timer - -[Timer] -OnUnitInactiveSec=1min -OnBootSec=1min -Unit=offlineimap.service - -[Install] -WantedBy=mail.target -- 2.34.2