#!/usr/bin/env python # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import argparse import os import sys sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'dependency_manager'))) from dependency_manager import base_config # pylint: disable=import-error _SUPPORTED_ARCHS = [ 'linux2_x86_64', 'darwin_x86_64', 'win_AMD64', 'win32_AMD64', 'win32_x86', 'default' ] _DEFAULT_DEP = 'battor_agent_binary' _DEFAULT_CONFIG = os.path.join(os.path.dirname(__file__), '..', 'battor', 'battor_binary_dependencies.json') def UploadBinary(arch, path, config, dep): print 'Uploading binary:' print ' arch: %s' % arch print ' path: %s' % path print ' config: %s' % config print ' dep: %s' % dep c = base_config.BaseConfig(config, writable=True) c.AddCloudStorageDependencyUpdateJob( dep, arch, path, version=None, execute_job=True) print 'Upload complete.' def main(): parser = argparse.ArgumentParser() parser.add_argument('--arch', '--architecture', required=True, help='Architecture binary is built for.') parser.add_argument('--path', required=True, help='Path to binary.') parser.add_argument('--config', default=_DEFAULT_CONFIG, help='Path to dependency manager config') parser.add_argument('--dep', default=_DEFAULT_DEP, help='Name of dependency to update.') args = parser.parse_args() if args.arch not in _SUPPORTED_ARCHS: print 'Arch must be one of: %s' % _SUPPORTED_ARCHS return 1 UploadBinary(args.arch, args.path, args.config, args.dep) return 0 if __name__ == '__main__': sys.exit(main())