#!/usr/bin/env python2
#-*- coding: utf-8 -*-

# Copyright 2010 Calculate Ltd. http://www.calculate-linux.org
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License 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
sys.path.insert(0,os.path.abspath('/usr/lib/calculate-2.2/calculate-lib/pym'))
sys.path.insert(0,\
                os.path.abspath('/usr/lib/calculate-2.2/calculate-client/pym'))

from cl_lang import lang
tr = lang()
tr.setGlobalDomain('cl_client')
tr.setLanguage(sys.modules[__name__])

from cl_client_cmd import client_cmd

if __name__ == "__main__":
    obj = client_cmd()
    ret = obj.optobj.parse_args()
    if ret is False:
        sys.exit(1)
    opts, args = ret
    # Установка цвета при печати сообщений
    obj.setPrintNoColor(opts)
    # Установка переменных
    if not obj.setVars(opts):
        sys.exit(1)
    # Печать переменных
    obj.printVars(opts)
    # Если нет печати переменных выполняем логику программы
    if not opts.v and not opts.filter and not opts.xml:
        if args:
            domainName = args[0]
            # Ввод в домен
            if not obj.addDomain(domainName):
                sys.exit(1)
        elif opts.r:
            # Вывод из домена
            if not obj.delDomain():
                sys.exit(1)
        elif opts.mount:
            # Монтирование remote
            if not obj.mountRemote():
                sys.exit(1)
        elif opts.install:
            # update env files from calculate utilities 2.1 to 2.2
            if obj.updateEnvFiles():
                obj.logicObj.clVars.flIniFile()
            # Наложение шаблонов на систему при инсталяции
            if not obj.install():
                sys.exit(1)
        elif opts.uninstall:
            # Наложение шаблонов на систему при деинсталяции
            if not obj.uninstall():
                sys.exit(1)
    # Запись переменных
    if not obj.writeVars(opts):
        sys.exit(1)
    sys.exit(0)
