| Index: trunk/src/build/get_syzygy_binaries.py
|
| ===================================================================
|
| --- trunk/src/build/get_syzygy_binaries.py (revision 273361)
|
| +++ trunk/src/build/get_syzygy_binaries.py (working copy)
|
| @@ -7,14 +7,12 @@
|
|
|
| import cStringIO
|
| import hashlib
|
| -import errno
|
| import json
|
| import logging
|
| import optparse
|
| import os
|
| import re
|
| import shutil
|
| -import stat
|
| import subprocess
|
| import urllib2
|
| import zipfile
|
| @@ -174,27 +172,6 @@
|
| return not dirs and not files
|
|
|
|
|
| -def _RmTreeHandleReadOnly(func, path, exc):
|
| - """An error handling function for use with shutil.rmtree. This will
|
| - detect failures to remove read-only files, and will change their properties
|
| - prior to removing them. This is necessary on Windows as os.remove will return
|
| - an access error for read-only files, and git repos contain read-only
|
| - pack/index files.
|
| - """
|
| - excvalue = exc[1]
|
| - if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES:
|
| - _LOGGER.debug('Removing read-only path: %s', path)
|
| - os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
|
| - func(path)
|
| - else:
|
| - raise
|
| -
|
| -
|
| -def _RmTree(path):
|
| - """A wrapper of shutil.rmtree that handles read-only files."""
|
| - shutil.rmtree(path, ignore_errors=False, onerror=_RmTreeHandleReadOnly)
|
| -
|
| -
|
| def _CleanState(output_dir, state, dry_run=False):
|
| """Cleans up files/directories in |output_dir| that are referenced by
|
| the given |state|. Raises an error if there are local changes. Returns a
|
| @@ -239,7 +216,7 @@
|
| if os.path.exists(p) and _DirIsEmpty(p):
|
| _LOGGER.debug('Deleting empty directory "%s".', p)
|
| if not dry_run:
|
| - _RmTree(p)
|
| + shutil.rmtree(p, False)
|
|
|
| return deleted
|
|
|
| @@ -379,7 +356,7 @@
|
| # If overwrite was specified then take a heavy-handed approach.
|
| _LOGGER.debug('Deleting entire installation directory.')
|
| if not options.dry_run:
|
| - _RmTree(options.output_dir)
|
| + shutil.rmtree(options.output_dir, False)
|
| else:
|
| # Otherwise only delete things that the previous installation put in place,
|
| # and take care to preserve any local changes.
|
|
|