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

Side by Side Diff: tools/observatory_tool.py

Issue 1072273002: Add --silent flag to observatory_tool.py (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 """Helper for building and deploying Observatory""" 5 """Helper for building and deploying Observatory"""
6 6
7 import argparse 7 import argparse
8 import os 8 import os
9 import shutil 9 import shutil
10 import subprocess 10 import subprocess
(...skipping 15 matching lines...) Expand all
26 26
27 usage = """obs_tool.py [options]""" 27 usage = """obs_tool.py [options]"""
28 28
29 def BuildArguments(): 29 def BuildArguments():
30 result = argparse.ArgumentParser(usage=usage) 30 result = argparse.ArgumentParser(usage=usage)
31 result.add_argument("--package-root", help="package root", default=None) 31 result.add_argument("--package-root", help="package root", default=None)
32 result.add_argument("--dart-executable", help="dart executable", default=None) 32 result.add_argument("--dart-executable", help="dart executable", default=None)
33 result.add_argument("--pub-executable", help="pub executable", default=None) 33 result.add_argument("--pub-executable", help="pub executable", default=None)
34 result.add_argument("--directory", help="observatory root", default=None) 34 result.add_argument("--directory", help="observatory root", default=None)
35 result.add_argument("--command", help="[get, build, deploy]", default=None) 35 result.add_argument("--command", help="[get, build, deploy]", default=None)
36 result.add_argument("--silent", help="silence all output", default=False)
36 return result 37 return result
37 38
38 def ProcessOptions(options, args): 39 def ProcessOptions(options, args):
39 # Required options. 40 # Required options.
40 if (options.command == None) or (options.directory == None): 41 if (options.command == None) or (options.directory == None):
41 return False 42 return False
42 # If we have a pub executable, we are running from the dart-sdk. 43 # If we have a pub executable, we are running from the dart-sdk.
43 if (options.pub_executable != None): 44 if (options.pub_executable != None):
44 return True 45 return True
45 # Otherwise, we need a dart executable and a package root. 46 # Otherwise, we need a dart executable and a package root.
46 return ((options.package_root != None) and 47 return ((options.package_root != None) and
47 (options.dart_executable != None)) 48 (options.dart_executable != None))
48 49
49 def ChangeDirectory(directory): 50 def ChangeDirectory(directory):
50 os.chdir(directory); 51 os.chdir(directory);
51 52
52 def PubGet(dart_executable, pub_executable, pkg_root): 53 def PubGet(dart_executable, pub_executable, pkg_root, silent):
53 # Always remove pubspec.lock before running 'pub get'. 54 # Always remove pubspec.lock before running 'pub get'.
54 try: 55 try:
55 os.remove('pubspec.lock'); 56 os.remove('pubspec.lock');
56 except OSError as e: 57 except OSError as e:
57 pass 58 pass
58 if (pub_executable != None): 59 with open(os.devnull, 'wb') as silent_sink:
59 return subprocess.call([pub_executable, 60 if (pub_executable != None):
60 'get', 61 return subprocess.call([pub_executable,
61 '--offline']) 62 'get',
62 else: 63 '--offline'],
63 return subprocess.call(['python', 64 stdout=silent_sink if silent else None,
64 RUN_PUB, 65 stderr=silent_sink if silent else None)
65 '--package-root=' + pkg_root, 66 else:
66 '--dart-executable=' + dart_executable, 67 return subprocess.call(['python',
67 'get', 68 RUN_PUB,
68 '--offline']) 69 '--package-root=' + pkg_root,
70 '--dart-executable=' + dart_executable,
71 'get',
72 '--offline'],
73 stdout=silent_sink if silent else None,
74 stderr=silent_sink if silent else None,)
69 75
70 def PubBuild(dart_executable, pub_executable, pkg_root, output_dir): 76 def PubBuild(dart_executable, pub_executable, pkg_root, silent, output_dir):
71 if (pub_executable != None): 77 with open(os.devnull, 'wb') as silent_sink:
72 return subprocess.call([pub_executable, 78 if (pub_executable != None):
73 'build', 79 return subprocess.call([pub_executable,
74 '--output', 80 'build',
75 output_dir]) 81 '--output',
76 else: 82 output_dir],
77 return subprocess.call(['python', 83 stdout=silent_sink if silent else None,
78 RUN_PUB, 84 stderr=silent_sink if silent else None,)
79 '--package-root=' + pkg_root, 85 else:
80 '--dart-executable=' + dart_executable, 86 return subprocess.call(['python',
81 'build', 87 RUN_PUB,
82 '--output', 88 '--package-root=' + pkg_root,
83 output_dir]) 89 '--dart-executable=' + dart_executable,
90 'build',
91 '--output',
92 output_dir],
93 stdout=silent_sink if silent else None,
94 stderr=silent_sink if silent else None,)
84 95
85 def Deploy(input_dir, output_dir): 96 def Deploy(input_dir, output_dir):
86 shutil.rmtree(output_dir) 97 shutil.rmtree(output_dir)
87 shutil.copytree(input_dir, output_dir, ignore=IGNORE_PATTERNS) 98 shutil.copytree(input_dir, output_dir, ignore=IGNORE_PATTERNS)
88 return 0 99 return 0
89 100
90 def RewritePubSpec(input_path, output_path, search, replace): 101 def RewritePubSpec(input_path, output_path, search, replace):
91 with open(input_path, 'rb') as input_file: 102 with open(input_path, 'rb') as input_file:
92 input_data = input_file.read() 103 input_data = input_file.read()
93 input_data = input_data.replace(search, replace) 104 input_data = input_data.replace(search, replace)
94 with open(output_path, 'wb+') as output_file: 105 with open(output_path, 'wb+') as output_file:
95 output_file.write(input_data) 106 output_file.write(input_data)
96 107
97 def ExecuteCommand(options, args): 108 def ExecuteCommand(options, args):
98 cmd = options.command 109 cmd = options.command
99 if (cmd == 'get'): 110 if (cmd == 'get'):
100 return PubGet(options.dart_executable, 111 return PubGet(options.dart_executable,
101 options.pub_executable, 112 options.pub_executable,
102 options.package_root) 113 options.package_root,
114 options.silent)
103 elif (cmd == 'build'): 115 elif (cmd == 'build'):
104 return PubBuild(options.dart_executable, 116 return PubBuild(options.dart_executable,
105 options.pub_executable, 117 options.pub_executable,
106 options.package_root, 118 options.package_root,
119 options.silent,
107 args[0]) 120 args[0])
108 elif (cmd == 'deploy'): 121 elif (cmd == 'deploy'):
109 Deploy('build', 'deployed') 122 Deploy('build', 'deployed')
110 elif (cmd == 'rewrite'): 123 elif (cmd == 'rewrite'):
111 RewritePubSpec(args[0], args[1], args[2], args[3]) 124 RewritePubSpec(args[0], args[1], args[2], args[3])
112 else: 125 else:
113 print >> sys.stderr, ('ERROR: command "%s" not supported') % (cmd) 126 print >> sys.stderr, ('ERROR: command "%s" not supported') % (cmd)
114 return -1; 127 return -1;
115 128
116 def main(): 129 def main():
(...skipping 13 matching lines...) Expand all
130 if (options.pub_executable != None): 143 if (options.pub_executable != None):
131 options.pub_executable = os.path.abspath(options.pub_executable) 144 options.pub_executable = os.path.abspath(options.pub_executable)
132 if len(args) == 1: 145 if len(args) == 1:
133 args[0] = os.path.abspath(args[0]) 146 args[0] = os.path.abspath(args[0])
134 # Pub must be run from the project's root directory. 147 # Pub must be run from the project's root directory.
135 ChangeDirectory(options.directory) 148 ChangeDirectory(options.directory)
136 return ExecuteCommand(options, args) 149 return ExecuteCommand(options, args)
137 150
138 if __name__ == '__main__': 151 if __name__ == '__main__':
139 sys.exit(main()); 152 sys.exit(main());
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698