#!/usr/bin/env python
import argparse
from os.path import join, dirname
import sys
from insider.facade import get_insider
import app

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

from 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__':
    control = facade.get_control(get_insider())

    parser = create_args_parser()
    args = parser.parse_args()

    method = getattr(control, args.action)
    app.run(lambda: app.call(method, vars(args)), args.debug)