Source code for plugins.common.kconfig

from __future__ import with_statement
import re

[docs]class Kconfig : """Handle get/set on configuration file of kconfig system""" def __init__ (self, conf_file, prefix) : self._prefix = prefix self._conf_file = conf_file
[docs] def get_selected_parameters (self) : parameters = [] with open (self._conf_file) as file : for line in file : if re.match (self._prefix, line.lstrip()) : # Remove prefix and assignment parameters.append (line.lstrip().split(self._prefix, 1)[1].split ('=', 1)[0].rstrip()) return parameters # TO REVIEW
[docs] def set_parameter(self,param,val): try: print "Opening file :",self.conf_file,"..." f = open(self.conf_file,"rw") lines = f.readlines() except: print "File :",self.conf_file,"can't be opened" exit(-1) found = False for l in lines: old_line_tmp = str(l) l = l.replace((self.prefix+"_"),"").replace(" ","").replace("\n","").replace("isnotset","").split("=") l = l[0] if l.find(param)>=0 : l = l.replace("#","") tmp = l.split(param) if tmp[1] == "": found = True old_line = old_line_tmp.replace("\n","") if val=="y": new_line = self.prefix+"_"+l+"="+val elif val=="null": new_line = "# "+self.prefix+"_"+l+" is not set" else: new_line = self.prefix+"_"+l+"="+"\""+val+"\"" if found==False: print "The parameter :",param,"does not exist." else: command = "sed -i \'s,"+old_line+","+new_line+",g\' "+self.conf_file print "old line =",old_line print "new line =",new_line print command os.system(command)
[docs] def get_parameter(self,param): try: print "Opening file :",self._conf_file,"..." f = open(self._conf_file,"r") lines = f.readlines() except: print "File :",self._conf_file,"can't be opened" exit(-1) OUT = "no out" found = False for l in lines: l = l.replace((self._prefix+"_"),"").replace(" ","").replace("\n","").replace("isnotset","").split("=") if len(l) > 1: val = l[1] l = l[0] if l.find(param)>=0 : tmp = l.split(param) if tmp[1] == "": found = True if tmp[0] == "#": OUT = "The parameter : "+param+" is not set" elif tmp[0] == "": OUT = "The parameter : "+param+" is set to "+val if found==False: OUT = "The parameter : "+param+" does not exist." return OUT
[docs] def is_selected(self, param) : """ Check if param is set in Config File """ varName = self._prefix + param + '=' try: for line in open(self._conf_file) : if varName in line: # Parse line like : varName=y # Handle case like varNameXXX if (line.split(varName)[-1] == 'y\n') : return True else : return False return False except: return False