Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: bootstrap/virtualenv/bin/rebuild-script.py

Issue 1431173002: Revert of Removed virtualenv from depot_tools (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bootstrap/virtualenv/README.rst ('k') | bootstrap/virtualenv/docs/Makefile » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 """
3 Helper script to rebuild virtualenv.py from virtualenv_support
4 """
5
6 import re
7 import os
8 import sys
9
10 here = os.path.dirname(__file__)
11 script = os.path.join(here, '..', 'virtualenv.py')
12
13 file_regex = re.compile(
14 r'##file (.*?)\n([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*convert\("""(.*?)"""\)',
15 re.S)
16 file_template = '##file %(filename)s\n%(varname)s = convert("""\n%(data)s""")'
17
18 def rebuild():
19 f = open(script, 'rb')
20 content = f.read()
21 f.close()
22 parts = []
23 last_pos = 0
24 match = None
25 for match in file_regex.finditer(content):
26 parts.append(content[last_pos:match.start()])
27 last_pos = match.end()
28 filename = match.group(1)
29 varname = match.group(2)
30 data = match.group(3)
31 print('Found reference to file %s' % filename)
32 pathname = os.path.join(here, '..', 'virtualenv_embedded', filename)
33 f = open(pathname, 'rb')
34 c = f.read()
35 f.close()
36 new_data = c.encode('zlib').encode('base64')
37 if new_data == data:
38 print(' Reference up to date (%s bytes)' % len(c))
39 parts.append(match.group(0))
40 continue
41 print(' Content changed (%s bytes -> %s bytes)' % (
42 zipped_len(data), len(c)))
43 new_match = file_template % dict(
44 filename=filename,
45 varname=varname,
46 data=new_data)
47 parts.append(new_match)
48 parts.append(content[last_pos:])
49 new_content = ''.join(parts)
50 if new_content != content:
51 sys.stdout.write('Content updated; overwriting... ')
52 f = open(script, 'wb')
53 f.write(new_content)
54 f.close()
55 print('done.')
56 else:
57 print('No changes in content')
58 if match is None:
59 print('No variables were matched/found')
60
61 def zipped_len(data):
62 if not data:
63 return 'no data'
64 try:
65 return len(data.decode('base64').decode('zlib'))
66 except:
67 return 'unknown'
68
69 if __name__ == '__main__':
70 rebuild()
71
OLDNEW
« no previous file with comments | « bootstrap/virtualenv/README.rst ('k') | bootstrap/virtualenv/docs/Makefile » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698