#! /usr/bin/env python3

# Core packages
import argparse
import os

# Local packages
from canonicalwebteam.upload_assets.uploader import gather_files, upload_files

api_base_url = os.environ.get('API_BASE_URL', 'https://assets.ubuntu.com/v1/')
api_secret_token = os.environ.get('API_SECRET_TOKEN')

parser = argparse.ArgumentParser(
    description='Upload assets from this directory'
)
parser.add_argument(
    '-u', '--api-url',
    help='The API base URL',
    default=api_base_url
)
parser.add_argument(
    '-s', '--api-token',
    help='The secret authentication token for the API',
    required=not bool(api_secret_token),
    default=api_secret_token
)
parser.add_argument(
    '-p', '--url-path',
    help='The URL path to upload the file to'
)
parser.add_argument(
    '-t', '--tags',
    help='Tags for uploaded assets', default='auto-upload'
)
parser.add_argument(
    'upload_paths',
    help='A list of paths to files or directories to upload',
    nargs='+'
)
cli_arguments = vars(parser.parse_args())

files = gather_files(cli_arguments['upload_paths'])
upload_files(
    files,
    api_url=cli_arguments['api_url'],
    api_token=cli_arguments['api_token'],
    tags=cli_arguments['tags'],
    url_path=cli_arguments['url_path']
)
