xref: /third_party/skia/build/fuchsia/gen_repo (revision cb93a386)
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