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