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 Generate a Fuchsia repo capable of serving Fuchsia archives over the 9cb93a386Sopenharmony_ci network. 10cb93a386Sopenharmony_ci""" 11cb93a386Sopenharmony_ci 12cb93a386Sopenharmony_ciimport argparse 13cb93a386Sopenharmony_ciimport os 14cb93a386Sopenharmony_ciimport subprocess 15cb93a386Sopenharmony_ciimport sys 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_cidef main(): 18cb93a386Sopenharmony_ci parser = argparse.ArgumentParser() 19cb93a386Sopenharmony_ci 20cb93a386Sopenharmony_ci parser.add_argument('--pm-bin', dest='pm_bin', action='store', required=True) 21cb93a386Sopenharmony_ci parser.add_argument( 22cb93a386Sopenharmony_ci '--repo-dir', dest='repo_dir', action='store', required=True) 23cb93a386Sopenharmony_ci parser.add_argument( 24cb93a386Sopenharmony_ci '--archive', dest='archives', action='append', required=True) 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci args = parser.parse_args() 27cb93a386Sopenharmony_ci 28cb93a386Sopenharmony_ci assert os.path.exists(args.pm_bin) 29cb93a386Sopenharmony_ci 30cb93a386Sopenharmony_ci if not os.path.exists(args.repo_dir): 31cb93a386Sopenharmony_ci pm_newrepo_command = [args.pm_bin, 'newrepo', '-repo', args.repo_dir] 32cb93a386Sopenharmony_ci subprocess.check_call(pm_newrepo_command) 33cb93a386Sopenharmony_ci 34cb93a386Sopenharmony_ci pm_publish_command = [ 35cb93a386Sopenharmony_ci args.pm_bin, 36cb93a386Sopenharmony_ci 'publish', 37cb93a386Sopenharmony_ci '-C', # Remove all previous registrations. 38cb93a386Sopenharmony_ci '-a', # Publish archives from an archive (mode). 39cb93a386Sopenharmony_ci '-repo', 40cb93a386Sopenharmony_ci args.repo_dir 41cb93a386Sopenharmony_ci ] 42cb93a386Sopenharmony_ci 43cb93a386Sopenharmony_ci for archive in args.archives: 44cb93a386Sopenharmony_ci pm_publish_command.append('-f') 45cb93a386Sopenharmony_ci pm_publish_command.append(archive) 46cb93a386Sopenharmony_ci 47cb93a386Sopenharmony_ci print "PM Publish: " 48cb93a386Sopenharmony_ci print pm_publish_command 49cb93a386Sopenharmony_ci subprocess.check_call(pm_publish_command) 50cb93a386Sopenharmony_ci 51cb93a386Sopenharmony_ci return 0 52cb93a386Sopenharmony_ci 53cb93a386Sopenharmony_ci 54cb93a386Sopenharmony_ciif __name__ == '__main__': 55cb93a386Sopenharmony_ci sys.exit(main()) 56