summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2013-01-09 16:45:04 -0800
committerJesse Morgan <morganjm@amazon.com>2013-01-09 16:45:04 -0800
commit4e52a7884016a776cbd46d67d09324f2d80a9dc6 (patch)
treed80730dbb51309a0e617b15b0725c1c1b8f13be4
parentd6cdd193535b974a70071b992bcb44a5b9efe26e (diff)
Various changes to make offlineimap work better on my laptop.
-rw-r--r--base/bashrc13
-rw-r--r--base/muttrc1
-rw-r--r--base/offlineimap/.nolink (renamed from host-overrides/jesterpm.net/offlineimap/.nolink)0
-rw-r--r--base/offlineimap/helper.py26
-rw-r--r--base/offlineimaprc (renamed from host-overrides/jesterpm.net/offlineimaprc)10
-rw-r--r--host-overrides/jesterpm.net/offlineimap/helper.py45
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