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):