import shutil import datetime import os import re class Apt: skel_path = "/usr/share/lliurex-apt/skels" optional_path = "/usr/share/lliurex-apt/optional" def __init__(self): #print("Apt::__init__") self.skel=[] self.optional=[] if os.path.exists(Apt.skel_path): for file in os.listdir(Apt.skel_path): name=self.get_skel_name(Apt.skel_path + os.sep + file) if name=="": name=file self.skel.append((name,Apt.skel_path + os.sep + file)) if os.path.exists(Apt.optional_path): for file in os.listdir(Apt.optional_path): name=self.get_skel_name(Apt.optional_path + os.sep + file) if name=="": name=file self.optional.append((name,Apt.optional_path + os.sep + file)) def get_repo_names(self): list=[] m=re.compile("^#Name:(?P.+)$",re.IGNORECASE) name="" f = open("/etc/apt/sources.list","r") for line in f.readlines(): if not line=="": ma=m.match(line) if not ma==None: name=ma.group("name").lstrip() list.append(name) return list def get_skel_name(self,file): m=re.compile("^#Name:(?P.+)$",re.IGNORECASE) name="" f = open(file,"r") for line in f.readlines(): if not line=="": ma=m.match(line) if not ma==None: name=ma.group("name").lstrip() #print "Name:" + name break f.close() return name #print "no name found for " + file def create_source_list_file(self,skels): #backup current source list backupname = "/etc/apt/sources.list."+str(datetime.datetime.now().isoformat()) #print("Apt::create_source_list_file -> Creating backup as " + backupname) shutil.copyfile("/etc/apt/sources.list",backupname) #filling destination data source_list_data=[] for sk in skels: f=open(sk) for line in f.readlines(): source_list_data.append(line) f.close() f=open("/etc/apt/sources.list","w") for line in source_list_data: f.write(line) f.close()