diff options
author | Jannis Leidel <jannis@leidel.info> | 2012-02-16 21:09:00 +0100 |
---|---|---|
committer | Jannis Leidel <jannis@leidel.info> | 2012-02-16 21:09:00 +0100 |
commit | ee554dd82b8bc6ed9a3cf989b353126580fcc082 (patch) | |
tree | b0604f39ed465673316fe94ffa29046ed868aafc /pip/util.py | |
parent | 47f1b2c2b2523469e6107cb2ef325eb61fa8fcf1 (diff) | |
parent | 40ac381fad2cc31f75014f02d3e8bf755d933abb (diff) | |
download | pip-1.1.tar.gz |
Merge branch 'release/1.1'1.1
Diffstat (limited to 'pip/util.py')
-rw-r--r-- | pip/util.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/pip/util.py b/pip/util.py index 5d0ed4f88..e5ad6df17 100644 --- a/pip/util.py +++ b/pip/util.py @@ -98,10 +98,18 @@ def find_command(cmd, paths=None, pathext=None): def get_pathext(default_pathext=None): """Returns the path extensions from environment or a default""" if default_pathext is None: - default_pathext = os.pathsep.join([ '.COM', '.EXE', '.BAT', '.CMD' ]) + default_pathext = os.pathsep.join(['.COM', '.EXE', '.BAT', '.CMD']) pathext = os.environ.get('PATHEXT', default_pathext) return pathext + +def ask_path_exists(message, options): + for action in os.environ.get('PIP_EXISTS_ACTION', ''): + if action in options: + return action + return ask(message, options) + + def ask(message, options): """Ask the message interactively, with the given possible responses""" while 1: @@ -424,6 +432,17 @@ def untar_file(filename, location): if member.isdir(): if not os.path.exists(path): os.makedirs(path) + elif member.issym(): + try: + tar._extract_member(member, path) + except: + e = sys.exc_info()[1] + # Some corrupt tar files seem to produce this + # (specifically bad symlinks) + logger.warn( + 'In the tar file %s the member %s is invalid: %s' + % (filename, member.name, e)) + continue else: try: fp = tar.extractfile(member) |