summaryrefslogtreecommitdiff
path: root/lib/glider/util.py
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-10-14 05:10:30 +0000
committerNick Mathewson <nickm@torproject.org>2008-10-14 05:10:30 +0000
commitd90990ee3ecd09a2725b8051759a900ebd488b8c (patch)
treefbe68d0c4b698d45bfdcb6c91a43ea2e60c21329 /lib/glider/util.py
parentfb5a6115a6f3ea0216e3ca0645ba1eb31fb02876 (diff)
Rename glider to thandy, based on discussions on #nottor. Please let me know ASAP if there is another program Thandy, or if it means something rude, or whatever.
git-svn-id: file:///home/or/svnrepo/updater/trunk@17085 55e972cd-5a19-0410-ae62-a4d7a52db4cd
Diffstat (limited to 'lib/glider/util.py')
-rw-r--r--lib/glider/util.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/lib/glider/util.py b/lib/glider/util.py
deleted file mode 100644
index e2fb57a..0000000
--- a/lib/glider/util.py
+++ /dev/null
@@ -1,73 +0,0 @@
-
-import os
-import sys
-import tempfile
-
-import simplejson
-
-import glider.formats
-import glider.keys
-import glider.master_keys
-
-def moveFile(fromLocation, toLocation):
- if sys.platform in ('cygwin', 'win32'):
- # Win32 doesn't let rename replace an existing file.
- try:
- os.unlink(toLocation)
- except OSError:
- pass
- os.rename(fromLocation, toLocation)
-
-
-def replaceFile(fname, contents, textMode=False):
- """overwrite the file in 'fname' atomically with the content of 'contents'
- """
- dir, prefix = os.path.split(fname)
- fd, fname_tmp = tempfile.mkstemp(prefix=prefix, dir=dir, text=textMode)
-
- try:
- os.write(fd, contents)
- finally:
- os.close(fd)
-
- moveFile(fname_tmp, fname)
-
-def userFilename(name):
- try:
- base = os.environ["THANDY_HOME"]
- except KeyError:
- base = "~/.thandy"
- base = os.path.expanduser(base)
- if not os.path.exists(base):
- os.makedirs(base, 0700)
- return os.path.join(base, name)
-
-def getKeylist(keys_fname, checkKeys=True):
- import glider.master_keys
-
- keydb = glider.formats.Keylist()
-
- for key in glider.master_keys.MASTER_KEYS:
- keydb.addKey(key)
-
- user_keys = userFilename("preload_keys")
- if os.path.exists(user_keys):
- #XXXX somewhat roundabout.
- keylist = glider.formats.makeKeylistObj(user_keys)
- keydb.addFromKeylist(keylist, allowMasterKeys=True)
-
- if keys_fname and os.path.exists(keys_fname):
- f = open(keys_fname, 'r')
- try:
- obj = simplejson.load(f)
- finally:
- f.close()
- ss, role, path = glider.formats.checkSignedObj(obj, keydb)
- if role != 'master':
- raise glider.FormatException("%s wasn't a keylist."%keys_fname)
- if checkKeys and not ss.isValid():
- raise glider.FormatException("%s not signed by enough master keys"%
- keys_fname)
- keydb.addFromKeylist(obj['signed'], allowMasterKeys=False)
-
- return keydb