Skip to content

Commit a7de3b8

Browse files
authored
Adds help and alsologtostderr flags to comp database generation script (#4869)
Adds `--help` and `--alsologtostderr`, latter as a boolean switch. Error message was being sent to `/dev/null` by default, this allows it to print to stderr. Helps in debugging why the script may be failing. Tested by running 1. `./scripts/create_compdb.py`. This is the baseline (trunk). Can fail or succeed. Not evaluated. 2. `./scripts/create_compdb.py --help`. Prints help. Expected. 3. `./scripts/create_compdb.py --also`. Fails. Expected because of disabled abbreviations. 4. `./scripts/create_compdb.py --alsologtostderr`. Correctly printed error logs. Expected.
1 parent c94d407 commit a7de3b8

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

scripts/create_compdb.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@
2323
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2424
"""
2525

26+
import argparse
2627
import subprocess
2728

2829
import scripts_utils
2930

3031

31-
def _build_generated_files(bazel: str) -> None:
32+
def _build_generated_files(bazel: str, logtostderr: bool) -> None:
3233
print("Building the generated files so that tools can find them...")
3334

3435
# Collect the generated file labels. Include some rules which generate
@@ -41,9 +42,12 @@ def _build_generated_files(bazel: str) -> None:
4142
' kind("generated file", deps(//... except //utils/tree_sitter/...))'
4243
")"
4344
)
45+
log_to = None
46+
if not logtostderr:
47+
log_to = subprocess.DEVNULL
4448
generated_file_labels = subprocess.check_output(
4549
[bazel, "query", "--keep_going", "--output=label", kinds_query],
46-
stderr=subprocess.DEVNULL,
50+
stderr=log_to,
4751
encoding="utf-8",
4852
).splitlines()
4953
print(f"Found {len(generated_file_labels)} generated files...")
@@ -57,10 +61,21 @@ def _build_generated_files(bazel: str) -> None:
5761

5862

5963
def main() -> None:
64+
parser = argparse.ArgumentParser(
65+
description=__doc__,
66+
allow_abbrev=False,
67+
)
68+
parser.add_argument(
69+
"--alsologtostderr",
70+
action="store_true",
71+
help="Prints subcommand errors to stderr (default: False)",
72+
)
73+
74+
args = parser.parse_args()
6075
scripts_utils.chdir_repo_root()
6176
bazel = scripts_utils.locate_bazel()
6277

63-
_build_generated_files(bazel)
78+
_build_generated_files(bazel, args.alsologtostderr)
6479

6580
print("Generating compile_commands.json (may take a few minutes)...")
6681
subprocess.run([bazel, "run", "@hedron_compile_commands//:refresh_all"])

0 commit comments

Comments
 (0)