You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_tools/metadata/discover.py

39 lines
1.1 KiB
Python

# Copyright 2023 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
from typing import List
# The base names that are known to be Chromium metadata files.
_METADATA_FILES = {
"README.chromium",
}
def is_metadata_file(path: str) -> bool:
"""Filter for metadata files."""
return os.path.basename(path) in _METADATA_FILES
def find_metadata_files(root: str) -> List[str]:
"""Finds all metadata files within the given root directory,
including subdirectories.
Args:
root: the absolute path to the root directory within which to
search.
Returns: the absolute full paths for all the metadata files within
the root directory, sorted in ascending order.
"""
metadata_files = []
for (dirpath, _, filenames) in os.walk(root, followlinks=True):
for filename in filenames:
if is_metadata_file(filename):
full_path = os.path.join(root, dirpath, filename)
metadata_files.append(full_path)
return sorted(metadata_files)