#!/usr/bin/env python
# -*- coding: utf-8 -*-
##
#
# Vaisala software source code file
#
# Copyright (c) Vaisala Oyj 2015. All rights reserved.
#
##

"""
Adds a lightning layer to the webapp using smart defaults.
"""


import argparse
import subprocess
import platform
from os import path


RSW_SCRIPTS_DIR = "/usr/bin"


def get_args():
    parser = argparse.ArgumentParser("rsw-lightning-configure", formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument("-a", "--appurl", help="Application URL.", default="localhost:34080")
    parser.add_argument("-p", "--adminpass", help="Admin password.", default="admin123")
    parser.add_argument("-r", "--adminuser", help="Admin username.", default="admin")
    parser.add_argument("-n", "--layername", help="Name of layer to be added..", default="Lightning")
    parser.add_argument("-u", "--layerurl", help="URL of layer to be added..", default="/lightning")
    parser.add_argument("-l", "--layer", help="Layer to be added.", default="lightning:ltg_combined_25")
    parser.add_argument("-s", "--sldurl", help="Layer style. SLD url.", required=True)
    parser.add_argument("-m", "--sldnames", help="Layer style names.", default="ltg_combined_25,ltg_types")
    parser.add_argument("-d", "--debug", dest="debug", action="store_true", help="Enable debug messages")
    return parser.parse_args()


def main():
    args = get_args()
    script_dir = path.dirname(path.abspath(__file__))
    file_arg = path.join(script_dir, 'rsw-layer-add')

    process_args = [file_arg,
                    "-a", args.appurl,
                    "-r", args.adminuser,
                    "-p", args.adminpass,
                    "-n", args.layername,
                    "-u", args.layerurl,
                    "-l", args.layer,
                    "-s", args.sldurl,
                    "-m", args.sldnames]

    if platform.system() == 'Windows':
        process_args.insert(0, 'python')
    if args.debug:
        process_args.append("-d")
        print "Running:", " ".join(process_args)

    subprocess.check_call(process_args)


if __name__ == '__main__':
    main()
