1e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick#!/usr/bin/env python
2e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick#
3e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick# Copyright 2016 Google Inc.
4e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick#
5e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick# Use of this source code is governed by a BSD-style license that can be
6e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick# found in the LICENSE file.
7e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
8e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
9e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick"""Create the asset and upload it."""
10e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
11e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
12e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickimport argparse
13e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickimport common
14e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickimport os
15e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickimport subprocess
16e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickimport sys
17e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickimport utils
18e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
19e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
20e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickdef main():
21e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick  if 'linux' not in sys.platform:
22e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    print >> sys.stderr, 'This script only runs on Linux.'
23e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    sys.exit(1)
24e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick  parser = argparse.ArgumentParser()
25e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick  parser.add_argument('--gsutil')
26e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick  args = parser.parse_args()
27e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
28e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick  with utils.tmp_dir():
29e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    cwd = os.getcwd()
30e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    create_script = os.path.join(common.FILE_DIR, 'create.py')
31e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    upload_script = os.path.join(common.FILE_DIR, 'upload.py')
32e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
33e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    try:
34e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick      cwd = os.path.join(cwd, 'sysroot')
359c7dcac4a64297a3450dba86075491d5e82870a9Kevin Lubick      subprocess.check_call(['python', create_script, '-t', cwd])
36e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick      cmd = ['python', upload_script, '-t', cwd]
37e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick      if args.gsutil:
38463001b5ac9f3ee91861a6c6181035f55b70dd20Ben Wagner        cmd.extend(['--gsutil', args.gsutil])
39e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick      subprocess.check_call(cmd)
40e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick    except subprocess.CalledProcessError:
41e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick      # Trap exceptions to avoid printing two stacktraces.
42e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick      sys.exit(1)
43e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
44e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick
45e772aeea0809c4d3cd6335f3359a5fed10806045kjlubickif __name__ == '__main__':
46e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick  main()
47e772aeea0809c4d3cd6335f3359a5fed10806045kjlubick