diff options
author | 2016-06-15 12:07:42 -0700 | |
---|---|---|
committer | 2016-06-15 12:07:42 -0700 | |
commit | 0f1469bcdad11cf8bfe79ace33d28052418ecb48 (patch) | |
tree | 5411db3cc9fecf963821f2d5a904565617d25ed0 /infra/bots/assets/assets.py | |
parent | 115e925dc85f3c6dbb140a2c1be3309ff72d3d8b (diff) |
Add asset management scripts
These provide an easy way to create assets to be used by bots,
eg. Android SDK.
To create an asset:
$ infra/bots/assets/assets.py add android_sdk
(adds scripts in infra/bots/assets/android_sdk)
To upload a new version of an asset:
$ infra/bots/assets/android_sdk/upload.py -t $ANDROID_SDK_ROOT
(uploads Android SDK to GS, writes a version file)
$ git commit
$ git cl upload
To download the current version of the asset:
$ infra/bots/assets/android_sdk/download.py -t ../tmp
BUG=skia:5427
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069543002
Review-Url: https://codereview.chromium.org/2069543002
Diffstat (limited to 'infra/bots/assets/assets.py')
-rwxr-xr-x | infra/bots/assets/assets.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/infra/bots/assets/assets.py b/infra/bots/assets/assets.py new file mode 100755 index 0000000000..538a41b585 --- /dev/null +++ b/infra/bots/assets/assets.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# +# Copyright 2016 Google Inc. +# +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + + +"""Tool for managing assets.""" + + +import argparse +import asset_utils +import os +import shutil +import subprocess +import sys + +FILE_DIR = os.path.dirname(os.path.abspath(__file__)) +INFRA_BOTS_DIR = os.path.realpath(os.path.join(FILE_DIR, os.pardir)) + +sys.path.insert(0, INFRA_BOTS_DIR) +import utils + + +def add(args): + """Add a new asset.""" + asset_utils.Asset.add(args.asset_name) + + +def remove(args): + """Remove an asset.""" + asset_utils.Asset(args.asset_name).remove() + + +def download(args): + """Download the current version of an asset.""" + asset = asset_utils.Asset(args.asset_name, gsutil=args.gsutil) + asset.download_current_version(args.target_dir) + + +def upload(args): + """Upload a new version of the asset.""" + asset = asset_utils.Asset(args.asset_name, gsutil=args.gsutil) + asset.upload_new_version(args.target_dir, commit=args.commit) + + +def main(argv): + parser = argparse.ArgumentParser(description='Tool for managing assets.') + subs = parser.add_subparsers(help='Commands:') + + prs_add = subs.add_parser('add', help='Add a new asset.') + prs_add.set_defaults(func=add) + prs_add.add_argument('asset_name', help='Name of the asset.') + + prs_remove = subs.add_parser('remove', help='Remove an asset.') + prs_remove.set_defaults(func=remove) + prs_remove.add_argument('asset_name', help='Name of the asset.') + + prs_download = subs.add_parser( + 'download', help='Download the current version of an asset.') + prs_download.set_defaults(func=download) + prs_download.add_argument('asset_name', help='Name of the asset.') + prs_download.add_argument('--target_dir', '-t', required=True) + prs_download.add_argument('--gsutil') + + prs_upload = subs.add_parser( + 'upload', help='Upload a new version of an asset.') + prs_upload.set_defaults(func=upload) + prs_upload.add_argument('asset_name', help='Name of the asset.') + prs_upload.add_argument('--target_dir', '-t', required=True) + prs_upload.add_argument('--gsutil') + prs_upload.add_argument('--commit', action='store_true') + + args = parser.parse_args(argv) + args.func(args) + + +if __name__ == '__main__': + main(sys.argv[1:]) |