#!/usr/bin/env python
import logging
import sys
import argparse
from os.path import join, dirname
from syncloud.app import main
from syncloud.app import logger

from syncloud.insider.facade import get_insider

sys.path.append(join(dirname(__file__), '..'))

from syncloud.owncloud import facade


def create_args_parser():
    parser = argparse.ArgumentParser(description='ownCloud control tool')

    subparsers = parser.add_subparsers(help='available commands', dest='action')
    parser.add_argument('--host', default="localhost", dest='host')
    parser.add_argument('--debug', action='store_true')

    sub = subparsers.add_parser('finish', help="finish setup with https")
    sub.add_argument('login')
    sub.add_argument('password')
    sub.add_argument('protocol')

    subparsers.add_parser('https_on', help="enable https")
    subparsers.add_parser('https_off', help="disable https")
    subparsers.add_parser('url', help="prints external url by service name")

    subparsers.add_parser('verify', help="verify finish status")

    return parser


if __name__ == '__main__':
    parser = create_args_parser()
    args = parser.parse_args()

    console = True if args.debug else False
    level = logging.DEBUG if args.debug else logging.INFO
    logger.init(level, console, '/tmp/syncloud-owncloud-ctl.log')

    control = facade.get_control(get_insider())
    main.execute(control, args)