| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 """Utility for checking and processing licensing information in third_party | 6 """Utility for checking and processing licensing information in third_party |
| 7 directories. | 7 directories. |
| 8 | 8 |
| 9 Usage: licenses.py <command> | 9 Usage: licenses.py <command> |
| 10 | 10 |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 | 327 |
| 328 | 328 |
| 329 def FilterDirsWithFiles(dirs_list, root): | 329 def FilterDirsWithFiles(dirs_list, root): |
| 330 # If a directory contains no files, assume it's a DEPS directory for a | 330 # If a directory contains no files, assume it's a DEPS directory for a |
| 331 # project not used by our current configuration and skip it. | 331 # project not used by our current configuration and skip it. |
| 332 return [x for x in dirs_list if ContainsFiles(x, root)] | 332 return [x for x in dirs_list if ContainsFiles(x, root)] |
| 333 | 333 |
| 334 | 334 |
| 335 def FindThirdPartyDirs(prune_paths, root): | 335 def FindThirdPartyDirs(prune_paths, root): |
| 336 """Find all third_party directories underneath the source root.""" | 336 """Find all third_party directories underneath the source root.""" |
| 337 third_party_dirs = [] | 337 third_party_dirs = set() |
| 338 for path, dirs, files in os.walk(root): | 338 for path, dirs, files in os.walk(root): |
| 339 path = path[len(root)+1:] # Pretty up the path. | 339 path = path[len(root)+1:] # Pretty up the path. |
| 340 | 340 |
| 341 if path in prune_paths: | 341 if path in prune_paths: |
| 342 dirs[:] = [] | 342 dirs[:] = [] |
| 343 continue | 343 continue |
| 344 | 344 |
| 345 # Prune out directories we want to skip. | 345 # Prune out directories we want to skip. |
| 346 # (Note that we loop over PRUNE_DIRS so we're not iterating over a | 346 # (Note that we loop over PRUNE_DIRS so we're not iterating over a |
| 347 # list that we're simultaneously mutating.) | 347 # list that we're simultaneously mutating.) |
| 348 for skip in PRUNE_DIRS: | 348 for skip in PRUNE_DIRS: |
| 349 if skip in dirs: | 349 if skip in dirs: |
| 350 dirs.remove(skip) | 350 dirs.remove(skip) |
| 351 | 351 |
| 352 if os.path.basename(path) == 'third_party': | 352 if os.path.basename(path) == 'third_party': |
| 353 # Add all subdirectories that are not marked for skipping. | 353 # Add all subdirectories that are not marked for skipping. |
| 354 for dir in dirs: | 354 for dir in dirs: |
| 355 dirpath = os.path.join(path, dir) | 355 dirpath = os.path.join(path, dir) |
| 356 if dirpath not in prune_paths: | 356 if dirpath not in prune_paths: |
| 357 third_party_dirs.append(dirpath) | 357 third_party_dirs.add(dirpath) |
| 358 | 358 |
| 359 # Don't recurse into any subdirs from here. | 359 # Don't recurse into any subdirs from here. |
| 360 dirs[:] = [] | 360 dirs[:] = [] |
| 361 continue | 361 continue |
| 362 | 362 |
| 363 # Don't recurse into paths in ADDITIONAL_PATHS, like we do with regular | 363 # Don't recurse into paths in ADDITIONAL_PATHS, like we do with regular |
| 364 # third_party/foo paths. | 364 # third_party/foo paths. |
| 365 if path in ADDITIONAL_PATHS: | 365 if path in ADDITIONAL_PATHS: |
| 366 dirs[:] = [] | 366 dirs[:] = [] |
| 367 | 367 |
| 368 for dir in ADDITIONAL_PATHS: | 368 for dir in ADDITIONAL_PATHS: |
| 369 if dir not in prune_paths: | 369 if dir not in prune_paths: |
| 370 third_party_dirs.append(dir) | 370 third_party_dirs.add(dir) |
| 371 | 371 |
| 372 return third_party_dirs | 372 return third_party_dirs |
| 373 | 373 |
| 374 | 374 |
| 375 def ScanThirdPartyDirs(root=None): | 375 def ScanThirdPartyDirs(root=None): |
| 376 """Scan a list of directories and report on any problems we find.""" | 376 """Scan a list of directories and report on any problems we find.""" |
| 377 if root is None: | 377 if root is None: |
| 378 root = os.getcwd() | 378 root = os.getcwd() |
| 379 third_party_dirs = FindThirdPartyDirs(PRUNE_PATHS, root) | 379 third_party_dirs = FindThirdPartyDirs(PRUNE_PATHS, root) |
| 380 third_party_dirs = FilterDirsWithFiles(third_party_dirs, root) | 380 third_party_dirs = FilterDirsWithFiles(third_party_dirs, root) |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 elif command == 'credits': | 461 elif command == 'credits': |
| 462 if not GenerateCredits(): | 462 if not GenerateCredits(): |
| 463 return 1 | 463 return 1 |
| 464 else: | 464 else: |
| 465 print __doc__ | 465 print __doc__ |
| 466 return 1 | 466 return 1 |
| 467 | 467 |
| 468 | 468 |
| 469 if __name__ == '__main__': | 469 if __name__ == '__main__': |
| 470 sys.exit(main()) | 470 sys.exit(main()) |
| OLD | NEW |