36 lines
1.2 KiB
Python
Raw Normal View History

2024-04-21 18:02:31 +08:00
# Lint as: python3
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import logging
import os
import pathlib
import subprocess
# These paths should be relative to repository root.
_BAD_FILES = [
# Malformed BUILD.gn file, remove this entry once it is fixed.
"third_party/swiftshader/tests/VulkanUnitTests/BUILD.gn",
]
def is_bad_gn_file(filepath: str, root: pathlib.Path) -> bool:
relpath = os.path.relpath(filepath, root)
for bad_filepath in _BAD_FILES:
if relpath == bad_filepath:
logging.info(f'Skipping {relpath}: found in _BAD_FILES list.')
return True
if not os.access(filepath, os.R_OK | os.W_OK):
logging.info(f'Skipping {relpath}: Cannot read and write to it.')
return True
return False
def is_git_ignored(root: pathlib.Path, filepath: str) -> bool:
# The command git check-ignore exits with 0 if the path is ignored, 1 if it
# is not ignored.
exit_code = subprocess.run(['git', 'check-ignore', '-q', filepath],
cwd=root).returncode
return exit_code == 0