#!python
# Copyright 2018 Origent Data Sciences, Inc. or its affiliates. All Rights Reserved.

# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at

#     https://github.com/Origent/ServeRmore/blob/master/LICENSE

# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

import sys
import os

if os.environ.get('LC_CTYPE', '') == 'UTF-8':
    os.environ['LC_CTYPE'] = 'en_US.UTF-8'

import ServeRmore, srvl_config

def main():
    if len(sys.argv) < 2:
        config=srvl_config.srvlConfig()
        config.help()
    elif len(sys.argv) == 3:
        if sys.argv[1] == 'lambda' and sys.argv[2] == "init":
            func = ServeRmore.srm()
            func.lambda_init()
        elif sys.argv[1] == 'lambda' and sys.argv[2] == "list":
            func = ServeRmore.srm()
            func.lambda_list()
        elif sys.argv[1] == 'lambda' and sys.argv[2] == "create":
            func = ServeRmore.srm()
            func.lambda_create()
        elif sys.argv[1] == 'lambda' and sys.argv[2] == "update":
            func = ServeRmore.srm()
            func.lambda_update()
        elif sys.argv[1] == 'lambda' and sys.argv[2] == "invoke":
            func = ServeRmore.srm()
            func.lambda_invoke()
        elif sys.argv[1] == 'lambda' and sys.argv[2] == "destroy":
            func = ServeRmore.srm()
            func.lambda_destroy()
        else:
            config=srvl_config.srvlConfig()
            config.help()
    elif sys.argv[1] == 'help':
        config=srvl_config.srvlConfig()
        config.help()
    elif sys.argv[1] == 'settings':
        config=srvl_config.srvlConfig()
        config.show()
    elif sys.argv[1] == 'version':
        config=srvl_config.srvlConfig()
        config.version()
    elif sys.argv[1] == 'create':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.create("srm_builder")
    elif sys.argv[1] == 'terminate':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.terminate()
    elif sys.argv[1] == 'status':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.status()
    elif sys.argv[1] == 'update':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.update()
    elif sys.argv[1] == 'package':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.package()
    elif sys.argv[1] == 'deploy':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.deploy()
    elif sys.argv[1] == 'test':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.test()
    elif sys.argv[1] == 'ssh':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.ssh()
    elif sys.argv[1] == 'sftp':
        vm = ServeRmore.srm()
        if vm.cc.print_msg < 1:
            vm.sftp()
    else:
        config=srvl_config.srvlConfig()
        config.help()

if __name__ == "__main__":
    main()
