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