| # Copyright 2023 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. |
| |
| import argparse |
| import pathlib |
| import subprocess |
| import sys |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser( |
| description="Wrap configc's package validator and provide in-tree-specific suggestions on failure." |
| ) |
| parser.add_argument( |
| "--configc-bin", |
| type=pathlib.Path, |
| required=True, |
| help="Path to configc binary.", |
| ) |
| parser.add_argument( |
| "--package", |
| type=pathlib.Path, |
| required=True, |
| help="Path to package manifest.", |
| ) |
| parser.add_argument( |
| "--stamp", |
| type=pathlib.Path, |
| required=True, |
| help="Path to stamp file to write when complete.", |
| ) |
| args = parser.parse_args() |
| |
| output = subprocess.run( |
| [ |
| args.configc_bin, |
| "validate-package", |
| args.package, |
| "--stamp", |
| "/dev/null", |
| ] |
| ) |
| |
| if output.returncode != 0: |
| print( |
| """ |
| Validating structured configuration failed! |
| |
| If this is a fuchsia_test_package() and you are using |
| RealmBuilder to provide all values, consider setting |
| `validate_structured_config=false` on this target to |
| disable this check. |
| """ |
| ) |
| sys.exit(output.returncode) |
| |
| with open(args.stamp, "w") as f: |
| f.write("") |