From 7d2f5b5612ca9ea6d39db1945ce395a15c5438c8 Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Mon, 18 Apr 2011 17:29:40 +0400 Subject: [PATCH] Add support set calculate param by dict. --- pym/cl_vars_share.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pym/cl_vars_share.py b/pym/cl_vars_share.py index fb3a76a..0df1d23 100644 --- a/pym/cl_vars_share.py +++ b/pym/cl_vars_share.py @@ -388,15 +388,31 @@ class varsShare: """ cmdLine = "/proc/cmdline" calculateParam = "calculate" + names = ("locale","keymap","timezone", + "res","video","composite") # try get timezone from kernel calculate param try: + if type(num) == str and not num.isdigit(): + name = num + num = names.index(name) + else: + name = names[int(num)] for param in open(cmdLine,"r").read().split(" "): parname,op,value = param.partition("=") if parname == calculateParam and op == "=": - values = value.split(",") - if len(values) > num and values[num].strip(): - return values[num].strip() - except IOError,e: + # new format + if ":" in value: + params = dict( + map(lambda x:x.partition(':')[0::2], + filter(lambda x:x, + value.split(',')))) + return params.get(name,"").strip() + # old format + else: + values = value.split(",") + if len(values) > num and values[num].strip(): + return values[num].strip() + except (IOError,ValueError,IndexError),e: return "" def getValueFromConfig(self,config,name):