| Index: drover.py
|
| diff --git a/drover.py b/drover.py
|
| index 6dbd0d5d92e8545ef39af130e043508ae1058d18..43c44885d9e1f725f58d0cccb558b45984696111 100755
|
| --- a/drover.py
|
| +++ b/drover.py
|
| @@ -8,10 +8,11 @@ import os
|
| import re
|
| import subprocess
|
| import sys
|
| -import webbrowser
|
|
|
| import breakpad
|
|
|
| +import gclient_utils
|
| +
|
| USAGE = """
|
| WARNING: Please use this tool in an empty directory
|
| (or at least one that you don't mind clobbering.)
|
| @@ -46,31 +47,6 @@ files_info_ = None
|
| delete_map_ = None
|
| file_pattern_ = r"[ ]+([MADUC])[ ]+/((?:trunk|branches/.*?)/src(.*)/(.*))"
|
|
|
| -def deltree(root):
|
| - """Removes a given directory"""
|
| - if (not os.path.exists(root)):
|
| - return
|
| -
|
| - if sys.platform == 'win32':
|
| - os.system('rmdir /S /Q ' + root.replace('/','\\'))
|
| - else:
|
| - for name in os.listdir(root):
|
| - path = os.path.join(root, name)
|
| - if os.path.isdir(path):
|
| - deltree(path)
|
| - else:
|
| - os.unlink(path)
|
| - os.rmdir(root)
|
| -
|
| -def clobberDir(dirname):
|
| - """Removes a given directory"""
|
| -
|
| - if (os.path.exists(dirname)):
|
| - print dir + " directory found, deleting"
|
| - # The following line was removed due to access controls in Windows
|
| - # which make os.unlink(path) calls impossible.
|
| - #TODO(laforge) : Is this correct?
|
| - deltree(dirname)
|
|
|
| def runGcl(subcommand):
|
| gcl_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "gcl")
|
| @@ -87,11 +63,9 @@ def gclUpload(revision, author):
|
| return runGcl(command)
|
|
|
| def getSVNInfo(url, revision):
|
| - command = 'svn info ' + url + "@"+str(revision)
|
| - svn_info = subprocess.Popen(command,
|
| - shell=True,
|
| - stdout=subprocess.PIPE,
|
| - stderr=subprocess.PIPE).stdout.readlines()
|
| + svn_info = gclient_utils.Popen(['svn', 'info', '%s@%s' % (url, revision)],
|
| + stdout=subprocess.PIPE,
|
| + stderr=subprocess.PIPE).stdout.readlines()
|
| info = {}
|
| for line in svn_info:
|
| match = re.search(r"(.*?):(.*)", line)
|
| @@ -101,11 +75,9 @@ def getSVNInfo(url, revision):
|
| return info
|
|
|
| def isSVNDirty():
|
| - command = 'svn status'
|
| - svn_status = subprocess.Popen(command,
|
| - shell=True,
|
| - stdout=subprocess.PIPE,
|
| - stderr=subprocess.PIPE).stdout.readlines()
|
| + svn_status = gclient_utils.Popen(['svn', 'status'],
|
| + stdout=subprocess.PIPE,
|
| + stderr=subprocess.PIPE).stdout.readlines()
|
| for line in svn_status:
|
| match = re.search(r"^[^X?]", line)
|
| if match:
|
| @@ -145,22 +117,18 @@ def inCheckoutRoot(path):
|
|
|
| def getRevisionLog(url, revision):
|
| """Takes an svn url and gets the associated revision."""
|
| - command = 'svn log ' + url + " -r"+str(revision)
|
| - svn_log = subprocess.Popen(command,
|
| - shell=True,
|
| - stdout=subprocess.PIPE,
|
| - stderr=subprocess.PIPE).stdout.readlines()
|
| + svn_log = gclient_utils.Popen(['svn', 'log', url, '-r', str(revision)],
|
| + stdout=subprocess.PIPE,
|
| + stderr=subprocess.PIPE).stdout.readlines()
|
| # Don't include the header lines and the trailing "---..." line and eliminate
|
| # any '\r's.
|
| return ''.join([l.replace('\r','') for l in svn_log[3:-1]])
|
|
|
| def getSVNVersionInfo():
|
| """Extract version information from SVN"""
|
| - command = 'svn --version'
|
| - svn_info = subprocess.Popen(command,
|
| - shell=True,
|
| - stdout=subprocess.PIPE,
|
| - stderr=subprocess.PIPE).stdout.readlines()
|
| + svn_info = gclient_utils.Popen(['svn', '--version'],
|
| + stdout=subprocess.PIPE,
|
| + stderr=subprocess.PIPE).stdout.readlines()
|
| info = {}
|
| for line in svn_info:
|
| match = re.search(r"svn, version ((\d+)\.(\d+)\.(\d+)) \(r(\d+)\)", line)
|
| @@ -304,16 +272,14 @@ def revertRevision(url, revision):
|
| os.system(command)
|
|
|
| def getFileInfo(url, revision):
|
| - global files_info_, file_pattern_
|
| + global files_info_
|
|
|
| if (files_info_ != None):
|
| return files_info_
|
|
|
| - command = 'svn log ' + url + " -r " + str(revision) + " -v"
|
| - svn_log = subprocess.Popen(command,
|
| - shell=True,
|
| - stdout=subprocess.PIPE,
|
| - stderr=subprocess.PIPE).stdout.readlines()
|
| + svn_log = gclient_utils.Popen(['svn', 'log', url, '-r', str(revision), '-v'],
|
| + stdout=subprocess.PIPE,
|
| + stderr=subprocess.PIPE).stdout.readlines()
|
|
|
| info = []
|
| for line in svn_log:
|
| @@ -470,7 +436,7 @@ def drover(options, args):
|
| if not (options.revertbot or SKIP_CHECK_WORKING or
|
| prompt("Working directory: '%s' already exists, clobber?" % working)):
|
| return 0
|
| - deltree(working)
|
| + gclient_utils.RemoveDirectory(working)
|
|
|
| if not options.local:
|
| os.makedirs(working)
|
|
|