From 4e52a7884016a776cbd46d67d09324f2d80a9dc6 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Wed, 9 Jan 2013 16:45:04 -0800 Subject: Various changes to make offlineimap work better on my laptop. --- base/bashrc | 13 +++++++ base/muttrc | 1 + base/offlineimap/.nolink | 0 base/offlineimap/helper.py | 26 +++++++++++++ base/offlineimaprc | 24 ++++++++++++ host-overrides/jesterpm.net/offlineimap/.nolink | 0 host-overrides/jesterpm.net/offlineimap/helper.py | 45 ----------------------- host-overrides/jesterpm.net/offlineimaprc | 24 ------------ 8 files changed, 64 insertions(+), 69 deletions(-) create mode 100644 base/offlineimap/.nolink create mode 100644 base/offlineimap/helper.py create mode 100644 base/offlineimaprc delete mode 100644 host-overrides/jesterpm.net/offlineimap/.nolink delete mode 100644 host-overrides/jesterpm.net/offlineimap/helper.py delete mode 100644 host-overrides/jesterpm.net/offlineimaprc diff --git a/base/bashrc b/base/bashrc index 204fcf0..b7f87f1 100644 --- a/base/bashrc +++ b/base/bashrc @@ -103,12 +103,25 @@ if [ -f /etc/bash_completion ] && ! shopt -oq posix; then fi # Personal Settings +export TERMINAL=gnome-terminal export EDITOR=vim +export MAILDIR=$HOME/.maildir/INBOX if [ -f ~/.shell_pathes ]; then source ~/.shell_pathes fi +# GPG +if [ -f "${HOME}/.gpg-agent-info" ]; then + . "${HOME}/.gpg-agent-info" + export GPG_AGENT_INFO + export SSH_AUTH_SOCK +fi + +GPG_TTY=$(tty) +export GPG_TTY + + # Host Specific Settings if [ -f ~/.host-specific/bashrc ]; then source ~/.host-specific/bashrc diff --git a/base/muttrc b/base/muttrc index caebefa..867e1a0 100644 --- a/base/muttrc +++ b/base/muttrc @@ -12,6 +12,7 @@ set delete=yes unset confirmappend set sort=threads set pager_stop=yes +set mark_old = no # Headers ignore * diff --git a/base/offlineimap/.nolink b/base/offlineimap/.nolink new file mode 100644 index 0000000..e69de29 diff --git a/base/offlineimap/helper.py b/base/offlineimap/helper.py new file mode 100644 index 0000000..9cb94d8 --- /dev/null +++ b/base/offlineimap/helper.py @@ -0,0 +1,26 @@ +#!/usr/bin/python + +import os, subprocess,sys + + +def mailpasswd(file): + path = os.getenv("HOME") + "/.offlineimap/" + file + ".gpg" + args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path] + try: + return subprocess.check_output(args).strip() + except subprocess.CalledProcessError: + return "" + +def prime_gpg_agent(): + ret = False + i = 1 + while not ret: + ret = (mailpasswd("prime") == "prime") + if i > 2: + from offlineimap.ui import getglobalui + sys.stderr.write("Error reading in passwords. Terminating.\n") + getglobalui().terminate() + i += 1 + return ret + +prime_gpg_agent() diff --git a/base/offlineimaprc b/base/offlineimaprc new file mode 100644 index 0000000..ce7106e --- /dev/null +++ b/base/offlineimaprc @@ -0,0 +1,24 @@ +[general] +accounts = Jesterpm.net +pythonfile = ~/.offlineimap/helper.py + +[Account Jesterpm.net] +localrepository = Local +remoterepository = Remote +#autorefresh = 5 +status_backend = sqlite + +[Repository Local] +type = Maildir +localfolders = ~/.maildir + +[Repository Remote] +type = IMAP +remotehost = californium.jesterpm.net +remoteusereval = "jesse" +remotepasseval = mailpasswd("password") +folderfilter = lambda folder: folder not in ['sent', 'search'] +ssl = yes +maxconnections = 2 +#holdconnectionopen = false +#idlefolders = ['INBOX', 'dc206'] diff --git a/host-overrides/jesterpm.net/offlineimap/.nolink b/host-overrides/jesterpm.net/offlineimap/.nolink deleted file mode 100644 index e69de29..0000000 diff --git a/host-overrides/jesterpm.net/offlineimap/helper.py b/host-overrides/jesterpm.net/offlineimap/helper.py deleted file mode 100644 index 4ec587a..0000000 --- a/host-overrides/jesterpm.net/offlineimap/helper.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/python - -import re -import sys -import gtk -import gnomekeyring as gkey - -class Keyring(object): - def __init__(self, name, server, protocol): - self._name = name - self._server = server - self._protocol = protocol - self._keyring = gkey.get_default_keyring_sync() - - def has_credentials(self): - try: - attrs = {"server": self._server, "protocol": self._protocol} - items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs) - return len(items) > 0 - except gkey.DeniedError: - return False - - def get_credentials(self): - attrs = {"server": self._server, "protocol": self._protocol} - items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs) - return (items[0].attributes["user"], items[0].secret) - - def set_credentials(self, (user, pw)): - attrs = { - "user": user, - "server": self._server, - "protocol": self._protocol, - } - gkey.item_create_sync(gkey.get_default_keyring_sync(), - gkey.ITEM_NETWORK_PASSWORD, self._name, attrs, pw, True) - -def get_username(server): - keyring = Keyring("offlineimap", server, "imap") - (username, password) = keyring.get_credentials() - return username - -def get_password(server): - keyring = Keyring("offlineimap", server, "imap") - (username, password) = keyring.get_credentials() - return password diff --git a/host-overrides/jesterpm.net/offlineimaprc b/host-overrides/jesterpm.net/offlineimaprc deleted file mode 100644 index a5cc3d8..0000000 --- a/host-overrides/jesterpm.net/offlineimaprc +++ /dev/null @@ -1,24 +0,0 @@ -[general] -accounts = Jesterpm.net -pythonfile = ~/.offlineimap/helper.py - -[Account Jesterpm.net] -localrepository = Local -remoterepository = Remote -autorefresh = 5 -status_backend = sqlite - -[Repository Local] -type = Maildir -localfolders = ~/.maildir - -[Repository Remote] -type = IMAP -remotehost = californium.jesterpm.net -remoteusereval = get_username("californium.jesterpm.net") -remotepasseval = get_password("californium.jesterpm.net") -folderfilter = lambda folder: folder not in ['sent', 'search'] -ssl = yes -maxconnections = 2 -holdconnectionopen = true -idlefolders = ['INBOX', 'dc206'] -- cgit v1.2.3