summaryrefslogtreecommitdiff
path: root/scripts/install.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/install.py')
-rwxr-xr-xscripts/install.py31
1 files changed, 14 insertions, 17 deletions
diff --git a/scripts/install.py b/scripts/install.py
index 6278fba16c..c2adf4d0a2 100755
--- a/scripts/install.py
+++ b/scripts/install.py
@@ -64,7 +64,6 @@ def add_indra_lib_path():
base_dir = add_indra_lib_path()
import copy
-import md5
import optparse
import os
import platform
@@ -75,23 +74,16 @@ import tempfile
import urllib2
import urlparse
-from sets import Set as set, ImmutableSet as frozenset
+try:
+ # Python 2.6
+ from hashlib import md5
+except ImportError:
+ # Python 2.5 and earlier
+ from md5 import new as md5
from indra.base import llsd
from indra.util import helpformatter
-# *HACK: Necessary for python 2.3. Consider removing this code wart
-# after etch has deployed everywhere. 2008-12-23 Phoenix
-try:
- sorted = sorted
-except NameError:
- def sorted(in_list):
- "Return a list which is a sorted copy of in_list."
- # Copy the source to be more functional and side-effect free.
- out_list = copy.copy(in_list)
- out_list.sort()
- return out_list
-
class InstallFile(object):
"This is just a handy way to throw around details on a file in memory."
def __init__(self, pkgname, url, md5sum, cache_dir, platform_path):
@@ -106,7 +98,7 @@ class InstallFile(object):
return "ifile{%s:%s}" % (self.pkgname, self.url)
def _is_md5sum_match(self):
- hasher = md5.new(file(self.filename, 'rb').read())
+ hasher = md5(file(self.filename, 'rb').read())
if hasher.hexdigest() == self.md5sum:
return True
return False
@@ -789,8 +781,13 @@ def _getuser():
import getpass
return getpass.getuser()
except ImportError:
- import win32api
- return win32api.GetUserName()
+ import ctypes
+ MAX_PATH = 260 # according to a recent WinDef.h
+ name = ctypes.create_unicode_buffer(MAX_PATH)
+ namelen = ctypes.c_int(len(name)) # len in chars, NOT bytes
+ if not ctypes.windll.advapi32.GetUserNameW(name, ctypes.byref(namelen)):
+ raise ctypes.WinError()
+ return name.value
def _default_installable_cache():
"""In general, the installable files do not change much, so find a