#-*- coding: utf-8 -*- # Copyright 2010 Mir 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. __version__ = "2.2.0" __version_info__ = tuple([ int(num) for num in __version__.split('.')]) __app__ = "calculate-install" import os import re import sys from cl_lang import lang from cl_template import template from cl_fill import clLocale from cl_datavars import DataVars from cl_print import color_print tr = lang() tr.setGlobalDomain('cl_install') tr.setLanguage(sys.modules[__name__]) class printNoColor: def colorPrint(self,attr,fg,bg,string): sys.stdout.write(string) class DataVarsInstall(DataVars): """Variable class for installation""" def flInstall(self, **args): '''Заполнить конфигурацию переменных, для десктопа''' # Имя секции в calculate.env envSection = "calculate-install" # заполнить переменные окружения алгоритмом по умолнанию self.importData(envSection, ('cl_vars_install','cl_fill_install')) class cl_install(color_print): """Primary class for templates appling and system installation""" def __init__(self): self.clVars = None self.clTemp = None self.color = True def colorPrint(self,attr,fg,bg,string): if self.color: color_print.colorPrint(self,attr,fg,bg,string) else: sys.stdout.write(string) sys.stdout.flush() def setNoColor(self): self.color = False def initVars(self): """Primary initialization of variables""" self.clVars = DataVarsInstall() self.clVars.flInstall() self.clVars.flIniFile() def applyTemplatesForSystem(self): """Apply templates for root of system.""" self.clVars.Set("cl_root_path","/", True) self.clTemp = template(self.clVars) dirsFiles = self.clTemp.applyProfiles() if self.clTemp.getError(): return False else: return dirsFiles def installSystem(self): """install System by current variable enviroment""" pass def setAllLocaleByLang(self,lang): """Set all locale variable by specified lang""" locale = clLocale() if not locale.isLangExists(lang): return False self.clVars.Set('os_locale_lang',lang, True) self.clVars.Set('os_locale_locale', locale.getFieldByLang('locale',lang), True) self.clVars.Set('os_locale_language', locale.getFieldByLang('language',lang), True) self.clVars.Set('os_locale_keymap', locale.getFieldByLang('keymap',lang), True) self.clVars.Set('os_locale_dumpkeys', locale.getFieldByLang('dumpkeys_charset',lang), True) self.clVars.Set('os_locale_xkb', locale.getFieldByLang('xkblayout',lang), True) return True