diff --git a/pym/cl_base.py b/pym/cl_base.py index 5947fa7..b537534 100644 --- a/pym/cl_base.py +++ b/pym/cl_base.py @@ -1624,6 +1624,41 @@ http://distro.ibiblio.org/pub/linux/distributions/gentoo" if prof: self._objvar.Set('setup_path_profinst',prof,True) + def fillFromCmdParam(self,s): + '''Заполнить переменные окружения посредством параметра командной + строки. + + Параметры: + s строка вида <параметра>=<значение>[:<пар>=<знач>] + + Возвращаемые значения: + True строка правильная и все параметры установлены + False строка неправильная или запрошены на установку параметры + "только для чтения" + ''' + dict = {} + # разбирать входящую строку с параметрами и устанавливить в словарь + # (проверка на корректный синтаксис) + for par in s.split(':'): + try: + parts = par.split('=') + # проверить, что бы части состояли из 2 частей + if len(parts) != 2: + return False + key, value = parts + # проверить что бы все параметры были доступны для записи + if 'r' in self._objvar.Get(key,True).v_mode: + return False + dict[key] = value + except VarNameError: + return False + + # установить параметры + for (k,v) in dict.items(): + if self._objvar.Set(k,v) == False: + return False + return True + def getProfileList(self, path): obj=self._objvar @@ -2007,6 +2042,21 @@ class DataVars: # заполнить полученную конфигурацию алгоритмом для инсталлятора fillVars(self).fillInstall(**args) + def flFromCmdParam(self, s ): + '''Заполнить переменные окружения посредством параметра командной + строки. + + Параметры: + s строка вида <параметра>=<значение>[:<пар>=<знач>] + + Возвращаемые значения: + True строка правильная и все параметры установлены + False строка неправильная или запрошены на установку параметры + "только для чтения" + ''' + # заполнить полученную конфигурацию парметрами из командной строки + return fillVars(self).fillFromCmdParam(s) + def isRewrite(self, vname): '''Доступна ли переменная для изменения @@ -2208,15 +2258,12 @@ class DataVars: p_val=var[i].v_printval if var[i].v_official: continue - print i.ljust(mlen_name),\ - var[i].v_mode.lower().ljust(mlen_mode),\ - str(var[i].v_type).ljust(mlen_type),\ - ":",\ - p_val + cl_utils.columnWrite( i, mlen_name, var[i].v_mode.lower(), + mlen_mode, str(var[i].v_type), mlen_type, p_val) print cl_utils.fillstr("-",mlen_name),\ - cl_utils.fillstr("-",mlen_mode),\ - cl_utils.fillstr("-",mlen_type),\ - cl_utils.fillstr("-",10) + cl_utils.fillstr("-",mlen_mode),\ + cl_utils.fillstr("-",mlen_type),\ + cl_utils.fillstr("-",10) #объеденить два объекта с переменными def joinVars(self, objvars, force=False):