| #!/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 sys |
| import argparse |
| import os |
| import subprocess |
| |
| |
| def run_fx_helpdoc(src_dir, out_path, dep_file, log_to_file=None): |
| fx_bin = os.path.join(src_dir, "scripts/fx") |
| if log_to_file: |
| log_to_file = open(log_to_file, 'w') |
| gen_helpdocs = subprocess.run([fx_bin, "helpdoc", "--depfile", dep_file, "--archive", out_path], |
| stdout=log_to_file) |
| if gen_helpdocs.returncode: |
| print(gen_helpdocs.stderr) |
| return 1 |
| |
| |
| def main(): |
| 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 |
| ) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |