| OLD | NEW | 
|    1 # Copyright 2009 Google Inc.  All Rights Reserved. |    1 # Copyright 2009 Google Inc.  All Rights Reserved. | 
|    2 # |    2 # | 
|    3 # Licensed under the Apache License, Version 2.0 (the "License"); |    3 # Licensed under the Apache License, Version 2.0 (the "License"); | 
|    4 # you may not use this file except in compliance with the License. |    4 # you may not use this file except in compliance with the License. | 
|    5 # You may obtain a copy of the License at |    5 # You may obtain a copy of the License at | 
|    6 # |    6 # | 
|    7 #      http://www.apache.org/licenses/LICENSE-2.0 |    7 #      http://www.apache.org/licenses/LICENSE-2.0 | 
|    8 # |    8 # | 
|    9 # Unless required by applicable law or agreed to in writing, software |    9 # Unless required by applicable law or agreed to in writing, software | 
|   10 # distributed under the License is distributed on an "AS IS" BASIS, |   10 # distributed under the License is distributed on an "AS IS" BASIS, | 
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  221   description. |  221   description. | 
|  222   """ |  222   """ | 
|  223   # Call subprocess and capture nothing: |  223   # Call subprocess and capture nothing: | 
|  224   SubprocessCallAndFilter(command, in_directory, True, True, fail_status) |  224   SubprocessCallAndFilter(command, in_directory, True, True, fail_status) | 
|  225  |  225  | 
|  226  |  226  | 
|  227 def SubprocessCallAndFilter(command, |  227 def SubprocessCallAndFilter(command, | 
|  228                             in_directory, |  228                             in_directory, | 
|  229                             print_messages, |  229                             print_messages, | 
|  230                             print_stdout, |  230                             print_stdout, | 
|  231                             fail_status=None, filter=None): |  231                             fail_status=None, filter_fn=None): | 
|  232   """Runs command, a list, in directory in_directory. |  232   """Runs command, a list, in directory in_directory. | 
|  233  |  233  | 
|  234   If print_messages is true, a message indicating what is being done |  234   If print_messages is true, a message indicating what is being done | 
|  235   is printed to stdout. If print_messages is false, the message is printed |  235   is printed to stdout. If print_messages is false, the message is printed | 
|  236   only if we actually need to print something else as well, so you can |  236   only if we actually need to print something else as well, so you can | 
|  237   get the context of the output. If print_messages is false and print_stdout |  237   get the context of the output. If print_messages is false and print_stdout | 
|  238   is false, no output at all is generated. |  238   is false, no output at all is generated. | 
|  239  |  239  | 
|  240   Also, if print_stdout is true, the command's stdout is also forwarded |  240   Also, if print_stdout is true, the command's stdout is also forwarded | 
|  241   to stdout. |  241   to stdout. | 
|  242  |  242  | 
|  243   If a filter function is specified, it is expected to take a single |  243   If a filter_fn function is specified, it is expected to take a single | 
|  244   string argument, and it will be called with each line of the |  244   string argument, and it will be called with each line of the | 
|  245   subprocess's output. Each line has had the trailing newline character |  245   subprocess's output. Each line has had the trailing newline character | 
|  246   trimmed. |  246   trimmed. | 
|  247  |  247  | 
|  248   If the command fails, as indicated by a nonzero exit status, gclient will |  248   If the command fails, as indicated by a nonzero exit status, gclient will | 
|  249   exit with an exit status of fail_status.  If fail_status is None (the |  249   exit with an exit status of fail_status.  If fail_status is None (the | 
|  250   default), gclient will raise an Error exception. |  250   default), gclient will raise an Error exception. | 
|  251   """ |  251   """ | 
|  252   logging.debug(command) |  252   logging.debug(command) | 
|  253   if print_messages: |  253   if print_messages: | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|  270   while in_byte: |  270   while in_byte: | 
|  271     if in_byte != "\r": |  271     if in_byte != "\r": | 
|  272       if print_stdout: |  272       if print_stdout: | 
|  273         if not print_messages: |  273         if not print_messages: | 
|  274           print("\n________ running \'%s\' in \'%s\'" |  274           print("\n________ running \'%s\' in \'%s\'" | 
|  275               % (' '.join(command), in_directory)) |  275               % (' '.join(command), in_directory)) | 
|  276           print_messages = True |  276           print_messages = True | 
|  277         sys.stdout.write(in_byte) |  277         sys.stdout.write(in_byte) | 
|  278       if in_byte != "\n": |  278       if in_byte != "\n": | 
|  279         in_line += in_byte |  279         in_line += in_byte | 
|  280     if in_byte == "\n" and filter: |  280     if in_byte == "\n" and filter_fn: | 
|  281       filter(in_line) |  281       filter_fn(in_line) | 
|  282       in_line = "" |  282       in_line = "" | 
|  283     in_byte = kid.stdout.read(1) |  283     in_byte = kid.stdout.read(1) | 
|  284   rv = kid.wait() |  284   rv = kid.wait() | 
|  285  |  285  | 
|  286   if rv: |  286   if rv: | 
|  287     msg = "failed to run command: %s" % " ".join(command) |  287     msg = "failed to run command: %s" % " ".join(command) | 
|  288  |  288  | 
|  289     if fail_status != None: |  289     if fail_status != None: | 
|  290       print >>sys.stderr, msg |  290       print >>sys.stderr, msg | 
|  291       sys.exit(fail_status) |  291       sys.exit(fail_status) | 
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  346   config_path = FindFileUpwards(config_file, path) |  346   config_path = FindFileUpwards(config_file, path) | 
|  347  |  347  | 
|  348   if not config_path: |  348   if not config_path: | 
|  349     print "Can't find", config_file |  349     print "Can't find", config_file | 
|  350     return None |  350     return None | 
|  351  |  351  | 
|  352   env = {} |  352   env = {} | 
|  353   execfile(config_path, env) |  353   execfile(config_path, env) | 
|  354   config_dir = os.path.dirname(config_path) |  354   config_dir = os.path.dirname(config_path) | 
|  355   return config_dir, env['entries'] |  355   return config_dir, env['entries'] | 
| OLD | NEW |