blob: 407ee7e40ed58f07a8acf878093f4417e218a104 [file] [log] [blame]
John Rosasco24cbdab2019-09-25 14:14:35 -07001#!/usr/bin/env python
2
3# Copyright 2019 Google LLC. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7"""
8 Builds a Fuchsia FAR archive.
9"""
10
11import argparse
12import os
13import subprocess
14import sys
15
16def main():
17 parser = argparse.ArgumentParser()
18
19 parser.add_argument('--pm-bin', dest='pm_bin', action='store', required=True)
20 parser.add_argument(
21 '--pkg-dir', dest='pkg_dir', action='store', required=True)
22 parser.add_argument(
23 '--pkg-name', dest='pkg_name', action='store', required=True)
24 parser.add_argument(
25 '--pkg-version', dest='pkg_version', action='store', required=True)
26 parser.add_argument(
27 '--pkg-manifest', dest='pkg_manifest', action='store', required=True)
28
29 args = parser.parse_args()
30
31 assert os.path.exists(args.pm_bin)
32 assert os.path.exists(args.pkg_dir)
33
34 pkg_dir = args.pkg_dir
35 pkg_name = args.pkg_name
36 pkg_manifest = args.pkg_manifest
37 pkg_version = args.pkg_version
38
39 pm_command_base = [
40 args.pm_bin,
41 '-o',
42 pkg_dir,
43 ]
44
45 # Create the package ID file.
46 subprocess.check_call(pm_command_base + ['-n'] + [pkg_name] + ['init'])
47
48 # Build the package.
49 subprocess.check_call(pm_command_base + ['-m'] + [pkg_manifest] + ['build'])
50
51 # Archive the package.
52 subprocess.check_call(pm_command_base + ['-m'] + [pkg_manifest] + ['-version'] + [pkg_version] + ['archive'])
53
54 return 0
55
56
57if __name__ == '__main__':
58 sys.exit(main())