56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| # Copyright 2019 Google LLC. All rights reserved.
 | |
| # Use of this source code is governed by a BSD-style license that can be
 | |
| # found in the LICENSE file.
 | |
| 
 | |
| """
 | |
|   Generate a Fuchsia repo capable of serving Fuchsia archives over the
 | |
|   network.
 | |
| """
 | |
| 
 | |
| import argparse
 | |
| import os
 | |
| import subprocess
 | |
| import sys
 | |
| 
 | |
| def main():
 | |
|   parser = argparse.ArgumentParser()
 | |
| 
 | |
|   parser.add_argument('--pm-bin', dest='pm_bin', action='store', required=True)
 | |
|   parser.add_argument(
 | |
|       '--repo-dir', dest='repo_dir', action='store', required=True)
 | |
|   parser.add_argument(
 | |
|       '--archive', dest='archives', action='append', required=True)
 | |
| 
 | |
|   args = parser.parse_args()
 | |
| 
 | |
|   assert os.path.exists(args.pm_bin)
 | |
| 
 | |
|   if not os.path.exists(args.repo_dir):
 | |
|     pm_newrepo_command = [args.pm_bin, 'newrepo', '-repo', args.repo_dir]
 | |
|     subprocess.check_call(pm_newrepo_command)
 | |
| 
 | |
|   pm_publish_command = [
 | |
|       args.pm_bin,
 | |
|       'publish',
 | |
|       '-C',  # Remove all previous registrations.
 | |
|       '-a',  # Publish archives from an archive (mode).
 | |
|       '-repo',
 | |
|       args.repo_dir
 | |
|   ]
 | |
| 
 | |
|   for archive in args.archives:
 | |
|     pm_publish_command.append('-f')
 | |
|     pm_publish_command.append(archive)
 | |
| 
 | |
|   print "PM Publish: "
 | |
|   print pm_publish_command
 | |
|   subprocess.check_call(pm_publish_command)
 | |
| 
 | |
|   return 0
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|   sys.exit(main())
 |