blob: 211d60cdd181da363869c5b2435338756cfc8ef0 [file] [log] [blame] [edit]
#!/usr/bin/env fuchsia-vendored-python
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Generate helpdoc reference docs for fx commands and subcommands.
This script calls fx helpdoc and generates reference docs for fx
commands and subcommands.
"""
import argparse
import os
import subprocess
import sys
def run_fx_helpdoc(
src_dir: str, out_path: str, dep_file: str, log_to_file: str | None = None
) -> int:
fx_bin = os.path.join(src_dir, "scripts/fx")
log_file = None
if log_to_file:
log_file = open(log_to_file, "w")
gen_helpdocs = subprocess.run(
[fx_bin, "helpdoc", "--depfile", dep_file, "--archive", out_path],
stdout=log_file,
)
if gen_helpdocs.returncode:
print(gen_helpdocs.stderr)
return 1
return 0
def main() -> int:
parser = argparse.ArgumentParser(
description=__doc__, # Prepend helpdoc with this file's docstring.
formatter_class=argparse.RawDescriptionHelpFormatter,
)
parser.add_argument(
"-o",
"--out-path",
type=str,
required=True,
help="Output location where generated docs should go",
)
parser.add_argument(
"-s",
"--src-dir",
type=str,
required=True,
help="Home location of Fuchsia relative to build",
)
parser.add_argument(
"-l", "--log-to-file", type=str, help="File for logging stdout."
)
parser.add_argument("--depfile", type=argparse.FileType("w"), required=True)
args = parser.parse_args()
run_fx_helpdoc(
args.src_dir, args.out_path, args.depfile.name, args.log_to_file
)
return 0
if __name__ == "__main__":
sys.exit(main())