| #!/usr/bin/env python | |
| # Copyright 2017 Google Inc. All Rights Reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http:#www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| '''Gyp helper to find private files if present. | |
| The first argument is the result of "<(DEPTH)" from gyp, the second argument | |
| is the path/pattern from <(DEPTH)/starboard/private/. Patterns should be given | |
| using Unix path style '/'. | |
| python find_private_files.py ".." "*.h" | |
| Would return files matching ../starboard/private/*.h if any exist. | |
| python find_private_files.py ".." "nplb/*_test.cc" | |
| Would return files matching ../starboard/private/nplb/*_test.cc if any exist. | |
| NOTE: gyp errors often produce no warnings. Be sure to structure usages of this | |
| script by gyp files like the line below, where the'<!@' is a gyp command | |
| expansion that will process the results into a list of returned file paths. | |
| Quoting arguments protects against wildcard expansion and other undesirable | |
| gyp/shell behavior. | |
| '<!@(python "<(DEPTH)/starboard/tools/find_private_files.py" "<(DEPTH)" "*.h")', | |
| ''' | |
| import glob | |
| import os | |
| import sys | |
| _PRIVATE_DIR_PATH = 'starboard/private' | |
| def find_private_files(depth, target_pattern): | |
| '''Assembles search glob and finds files matching the target pattern. | |
| Args: | |
| depth: The string result of "<(DEPTH)"" from gyp. | |
| target_pattern: The string path/pattern from <(DEPTH)/starboard/private/. | |
| ''' | |
| path = os.path.normpath(os.path.join( | |
| depth, _PRIVATE_DIR_PATH, target_pattern)) | |
| for f in glob.iglob(path): | |
| # Switch to Unix style '/' for gyp. | |
| print f.replace('\\', '/') | |
| if __name__ == '__main__': | |
| depth_arg = sys.argv[1] | |
| target_pattern_arg = sys.argv[2] | |
| find_private_files(depth_arg, target_pattern_arg) | |
| sys.exit(0) |