| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Enables directory-specific presubmit checks to run at upload and/or commit. | 6 """Enables directory-specific presubmit checks to run at upload and/or commit. |
| 7 """ | 7 """ |
| 8 | 8 |
| 9 __version__ = '1.3.1' | 9 __version__ = '1.3.2' |
| 10 | 10 |
| 11 # TODO(joi) Add caching where appropriate/needed. The API is designed to allow | 11 # TODO(joi) Add caching where appropriate/needed. The API is designed to allow |
| 12 # caching (between all different invocations of presubmit scripts for a given | 12 # caching (between all different invocations of presubmit scripts for a given |
| 13 # change). We should add it as our presubmit scripts start feeling slow. | 13 # change). We should add it as our presubmit scripts start feeling slow. |
| 14 | 14 |
| 15 import cPickle # Exposed through the API. | 15 import cPickle # Exposed through the API. |
| 16 import cStringIO # Exposed through the API. | 16 import cStringIO # Exposed through the API. |
| 17 import exceptions | 17 import exceptions |
| 18 import fnmatch | 18 import fnmatch |
| 19 import glob | 19 import glob |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 | 353 |
| 354 class AffectedFile(object): | 354 class AffectedFile(object): |
| 355 """Representation of a file in a change.""" | 355 """Representation of a file in a change.""" |
| 356 | 356 |
| 357 def __init__(self, path, action, repository_root=''): | 357 def __init__(self, path, action, repository_root=''): |
| 358 self._path = path | 358 self._path = path |
| 359 self._action = action | 359 self._action = action |
| 360 self._repository_root = repository_root | 360 self._repository_root = repository_root |
| 361 self._is_directory = None | 361 self._is_directory = None |
| 362 self._properties = {} | 362 self._properties = {} |
| 363 self.scm = '' |
| 363 | 364 |
| 364 def ServerPath(self): | 365 def ServerPath(self): |
| 365 """Returns a path string that identifies the file in the SCM system. | 366 """Returns a path string that identifies the file in the SCM system. |
| 366 | 367 |
| 367 Returns the empty string if the file does not exist in SCM. | 368 Returns the empty string if the file does not exist in SCM. |
| 368 """ | 369 """ |
| 369 return "" | 370 return "" |
| 370 | 371 |
| 371 def LocalPath(self): | 372 def LocalPath(self): |
| 372 """Returns the path of this file on the local disk relative to client root. | 373 """Returns the path of this file on the local disk relative to client root. |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 raise NotImplementedError() # Implement if/when needed. | 436 raise NotImplementedError() # Implement if/when needed. |
| 436 | 437 |
| 437 | 438 |
| 438 class SvnAffectedFile(AffectedFile): | 439 class SvnAffectedFile(AffectedFile): |
| 439 """Representation of a file in a change out of a Subversion checkout.""" | 440 """Representation of a file in a change out of a Subversion checkout.""" |
| 440 | 441 |
| 441 def __init__(self, *args, **kwargs): | 442 def __init__(self, *args, **kwargs): |
| 442 AffectedFile.__init__(self, *args, **kwargs) | 443 AffectedFile.__init__(self, *args, **kwargs) |
| 443 self._server_path = None | 444 self._server_path = None |
| 444 self._is_text_file = None | 445 self._is_text_file = None |
| 446 self.scm = 'svn' |
| 445 | 447 |
| 446 def ServerPath(self): | 448 def ServerPath(self): |
| 447 if self._server_path is None: | 449 if self._server_path is None: |
| 448 self._server_path = gclient.CaptureSVNInfo( | 450 self._server_path = gclient.CaptureSVNInfo( |
| 449 self.AbsoluteLocalPath()).get('URL', '') | 451 self.AbsoluteLocalPath()).get('URL', '') |
| 450 return self._server_path | 452 return self._server_path |
| 451 | 453 |
| 452 def IsDirectory(self): | 454 def IsDirectory(self): |
| 453 if self._is_directory is None: | 455 if self._is_directory is None: |
| 454 path = self.AbsoluteLocalPath() | 456 path = self.AbsoluteLocalPath() |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 return not DoPresubmitChecks(gcl.ChangeInfo('No name', 0, 0, '', files), | 805 return not DoPresubmitChecks(gcl.ChangeInfo('No name', 0, 0, '', files), |
| 804 options.commit, | 806 options.commit, |
| 805 options.verbose, | 807 options.verbose, |
| 806 sys.stdout, | 808 sys.stdout, |
| 807 sys.stdin, | 809 sys.stdin, |
| 808 default_presubmit=None) | 810 default_presubmit=None) |
| 809 | 811 |
| 810 | 812 |
| 811 if __name__ == '__main__': | 813 if __name__ == '__main__': |
| 812 sys.exit(Main(sys.argv)) | 814 sys.exit(Main(sys.argv)) |
| OLD | NEW |