diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2013-01-09 16:45:04 -0800 |
---|---|---|
committer | Jesse Morgan <morganjm@amazon.com> | 2013-01-09 16:45:04 -0800 |
commit | 4e52a7884016a776cbd46d67d09324f2d80a9dc6 (patch) | |
tree | d80730dbb51309a0e617b15b0725c1c1b8f13be4 | |
parent | d6cdd193535b974a70071b992bcb44a5b9efe26e (diff) |
Various changes to make offlineimap work better on my laptop.
-rw-r--r-- | base/bashrc | 13 | ||||
-rw-r--r-- | base/muttrc | 1 | ||||
-rw-r--r-- | base/offlineimap/.nolink (renamed from host-overrides/jesterpm.net/offlineimap/.nolink) | 0 | ||||
-rw-r--r-- | base/offlineimap/helper.py | 26 | ||||
-rw-r--r-- | base/offlineimaprc (renamed from host-overrides/jesterpm.net/offlineimaprc) | 10 | ||||
-rw-r--r-- | host-overrides/jesterpm.net/offlineimap/helper.py | 45 |
6 files changed, 45 insertions, 50 deletions
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/host-overrides/jesterpm.net/offlineimap/.nolink b/base/offlineimap/.nolink index e69de29..e69de29 100644 --- a/host-overrides/jesterpm.net/offlineimap/.nolink +++ b/base/offlineimap/.nolink 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/host-overrides/jesterpm.net/offlineimaprc b/base/offlineimaprc index a5cc3d8..ce7106e 100644 --- a/host-overrides/jesterpm.net/offlineimaprc +++ b/base/offlineimaprc @@ -5,7 +5,7 @@ pythonfile = ~/.offlineimap/helper.py [Account Jesterpm.net] localrepository = Local remoterepository = Remote -autorefresh = 5 +#autorefresh = 5 status_backend = sqlite [Repository Local] @@ -15,10 +15,10 @@ localfolders = ~/.maildir [Repository Remote] type = IMAP remotehost = californium.jesterpm.net -remoteusereval = get_username("californium.jesterpm.net") -remotepasseval = get_password("californium.jesterpm.net") +remoteusereval = "jesse" +remotepasseval = mailpasswd("password") folderfilter = lambda folder: folder not in ['sent', 'search'] ssl = yes maxconnections = 2 -holdconnectionopen = true -idlefolders = ['INBOX', 'dc206'] +#holdconnectionopen = false +#idlefolders = ['INBOX', 'dc206'] 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 |