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())
 |