| #!/usr/bin/env fuchsia-vendored-python |
| # Copyright 2017 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. |
| """Remove host tools that do not belong to a specific host CPU architecture |
| From SDK archive manifest.""" |
| |
| import argparse |
| import errno |
| import json |
| import os |
| import shutil |
| import sys |
| |
| _HOST_CPUS = ("x64", "arm64") |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser(description=__doc__) |
| parser.add_argument( |
| "--host_cpu", |
| required=True, |
| choices=_HOST_CPUS, |
| help="Host CPU architecture name", |
| ) |
| parser.add_argument( |
| "--input", |
| type=argparse.FileType("r"), |
| required=True, |
| help="Input API manifest file", |
| ) |
| parser.add_argument( |
| "--output", |
| type=argparse.FileType("w"), |
| required=True, |
| help="Output API manifest file", |
| ) |
| parser.add_argument( |
| "--host-tool-prefix", |
| required=True, |
| help="Line prefix for SDK host tool", |
| ) |
| |
| args = parser.parse_args() |
| |
| # Any line that begins with this prefix is a candidate for rejection. |
| candidate_line_prefix = args.host_tool_prefix |
| |
| # Any candidate line that begins with this prefix is accepted, all others |
| # are rejected. |
| accepted_line_prefix = candidate_line_prefix + args.host_cpu + "/" |
| |
| for line in args.input: |
| if line.startswith(candidate_line_prefix) and not line.startswith( |
| accepted_line_prefix |
| ): |
| continue |
| args.output.write(line) |
| |
| return 0 |
| |
| |
| if __name__ == "__main__": |
| sys.exit(main()) |