| #!/usr/bin/env python |
| # Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file |
| # for details. All rights reserved. Use of this source code is governed by a |
| # BSD-style license that can be found in the LICENSE file. |
| |
| # Script for uploading to x20 as a dependency in the same way we use cloud |
| # storage. |
| |
| import optparse |
| import os |
| import shutil |
| import stat |
| import subprocess |
| import sys |
| import tarfile |
| import utils |
| |
| GMSCORE_DEPS = '/google/data/rw/teams/gmscore-size/deps' |
| |
| def parse_options(): |
| return optparse.OptionParser().parse_args() |
| |
| def create_archive(name): |
| tarname = '%s.tar.gz' % name |
| with tarfile.open(tarname, 'w:gz') as tar: |
| tar.add(name) |
| return tarname |
| |
| def Main(): |
| (options, args) = parse_options() |
| assert len(args) == 1 |
| name = args[0] |
| print 'Creating archive for %s' % name |
| if not name in os.listdir('.'): |
| print 'You must be standing directly below the directory you are uploading' |
| return 1 |
| filename = create_archive(name) |
| sha1 = utils.get_sha1(filename) |
| dest = os.path.join(GMSCORE_DEPS, sha1) |
| print 'Uploading to %s' % dest |
| shutil.copyfile(filename, dest) |
| os.chmod(dest, stat.S_IRWXU | stat.S_IROTH | stat.S_IXOTH | stat.S_IRWXG) |
| sha1_file = '%s.sha1' % filename |
| with open(sha1_file, 'w') as output: |
| output.write(sha1) |
| print 'Sha (%s) written to: %s' % (sha1, sha1_file) |
| |
| if __name__ == '__main__': |
| sys.exit(Main()) |