#!python
import logging as log
import pyxnat
import json
import tempfile
import os.path as op
from bx import parse

import sys
dd = op.abspath(op.join(op.dirname(__file__), '..'))
sys.path.append(dd)

if __name__ == "__main__":
    parser = parse.create_parser()
    args = parser.parse_args()
    logger = log.getLogger()
    if args.verbose:
        logger.setLevel(level=log.DEBUG)
    else:
        logger.setLevel(level=log.INFO)

    if not op.isfile(args.config):
        log.error('Configuration file not found (%s)' % args.config)
        ans = input('Do you want to create it? (Y/n) (%s)' % args.config)
        if ans in ['y', 'Y', '']:
            url = 'https://xnat.barcelonabeta.org'
            server = input('Server: [%s]' % url)
            if server == '':
                server = url
            x = pyxnat.Interface(server=server)
            x.save_config(args.config)

        else:
            import sys
            log.info('Please provide a valid configuration file and try again.')
            sys.exit(-1)

    if args.dest is not None:
        dd = args.dest
    else:
        dd = json.load(open(args.config)).get('destination', None)
    if dd is None:
        dd = tempfile.gettempdir()
    log.info('Output folder: %s' % dd)

    x = pyxnat.Interface(config=args.config)

    parse.parse_args(args.command, args.args, x, dd)
