#!/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, asset_utils.MultiStore(gsutil=args.gsutil)) def remove(args): """Remove an asset.""" asset_utils.Asset(args.asset_name, asset_utils.MultiStore(gsutil=args.gsutil)).remove() def download(args): """Download the current version of an asset.""" asset = asset_utils.Asset(args.asset_name, asset_utils.MultiStore(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, asset_utils.MultiStore(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_add.add_argument('--gsutil') 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_remove.add_argument('--gsutil') 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:])