| # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | import os | 
 |  | 
 | """Chromium presubmit script for src/tools/ios. | 
 |  | 
 | See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts | 
 | for more details on the presubmit API built into depot_tools. | 
 | """ | 
 |  | 
 | WHITELIST_FILE = 'build/ios/grit_whitelist.txt' | 
 |  | 
 | def _CheckWhitelistSorted(input_api, output_api): | 
 |   for path in input_api.LocalPaths(): | 
 |     if WHITELIST_FILE == path: | 
 |       lines = open(os.path.join('../..', WHITELIST_FILE)).readlines() | 
 |       i = 0 | 
 |       while i < len(lines) - 1 and lines[i] <= lines[i + 1]: | 
 |         i += 1 | 
 |       if i < len(lines) - 1: | 
 |         return [output_api.PresubmitError( | 
 |             'The file ' + WHITELIST_FILE + ' must be sorted.  ' + | 
 |             'First offending line: #' + str(i + 2))] | 
 |   return [] | 
 |  | 
 | def _CommonChecks(input_api, output_api): | 
 |   """Checks common to both upload and commit.""" | 
 |   results = [] | 
 |   results.extend(_CheckWhitelistSorted(input_api, output_api)) | 
 |   return results | 
 |  | 
 | def CheckChangeOnUpload(input_api, output_api): | 
 |   results = [] | 
 |   results.extend(_CommonChecks(input_api, output_api)) | 
 |   return results | 
 |  | 
 | def CheckChangeOnCommit(input_api, output_api): | 
 |   results = [] | 
 |   results.extend(_CommonChecks(input_api, output_api)) | 
 |   return results |