#!/usr/bin/env python

import argparse

from rnkrcli.tasks import create_project, upload_project, run_project, status_project

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='rnkr-cli toolset')

    parser.add_argument(
        'command',
        help='the command to execute',
        default='create',
        choices=['create', 'upload', 'delete', 'run', 'status']
    )

    parser.add_argument(
        'mnemonic',
        nargs='?',
        help='the mnemonic of the application, i.e., CORR'
    )

    parser.add_argument(
        '--payload',
        nargs='*',
        help='the payload to send to the artifact'
    )

    parser.add_argument(
        '--engine',
        help='the engine used to run the application',
        default='python',
        choices=['python', 'nodejs', 'r']
    )

    parser.add_argument(
        '--artifact',
        help='the kind of artifact being created',
        default='app',
        choices=['app', 'service', 'widget']
    )

    args = parser.parse_args()

    if args.command == 'create':
        create_project(args.mnemonic, args.engine, args.artifact)

    elif args.command == 'upload':
        upload_project()

    elif args.command == 'run':
        run_project(args.payload)

    elif args.command == 'status':
        status_project()
