#!/usr/bin/env python

import os
import sys
import subprocess
import argparse
from slg_dev_ops import install_nginx


def get_arguments():
    parser = argparse.ArgumentParser()

    # argument groups can have their tickers combined (ie -su)
    bools = parser.add_argument_group()

    parser.add_argument('-o', '--os' default="ubuntu" help="The target OS, (ubuntu or debian)")

    parser.add_argument('-c', '--codename' default="bionic" help="The target codename (ubuntu: trusty, xenial, artful, bionic || debian: jessie, stretch)")

    args = parser.parse_args()

    return args


def test_args(args):
    if args['os'] == 'ubuntu' or args['os'] == 'debian':
        pass
    else:
        return 'This script only accepts "ubuntu" or "debian" as OS

    codename = args['codename']
    if codename == 'ubuntu' and codename in [
            'trusty', 'xenial', 'artful', 'bionic']:
        pass
    elif codename == 'debian' and codename in ['jessie', 'stretch']:
        pass
    else:
        return 'Please input an acceptable codename: run slg_dev_ops -h to see acceptable inputs per OS'


args = get_arguments()
not_ready = test_args()

if not_ready:
    print(not_ready)
else:
    # root check and install
    if os.geteuid() == 0:
        install_nginx(os=args['os'], codename=args['codename'])
    else:
        print("We're not root.")
        subprocess.call(['sudo', *sys.argv])
        sys.exit()
