import os import re import sys import commands pkgdir = "/var/log/packages/" swconfig_file = "/etc/swaret.conf" swnew_file = "/etc/swaret.conf.new" sgconfig_file = "/etc/slapt-getrc" dirlist = os.listdir(pkgdir) numpacks = len(dirlist) class package: def __init__(self, _filename): self.filename = _filename self.set_name_vars(self.filename.split("-")) self.file_lines = open(pkgdir + _filename, "r").readlines() #this is ugly (and slow?) self.size = int(self.file_lines[2].split(":")[1].split("K")[0]) self.compressed_size = int(self.file_lines[1].split(":")[1].split("K")[0]) self.info = "" self.md5sum = "" self.set_info(self.file_lines) # sets the variables that can be discerned from the package name def set_name_vars(self, filename): dashes = len(filename) self.packname = filename[:dashes - 3] for i in range(len(self.packname)): if i == 0 : tempname = self.packname[i] else : tempname = tempname + "-" + self.packname[i] self.name = tempname self.version = filename[-3:][0] self.arch = filename[-2:][0] self.build = filename[-1:][0] def set_info(self, file_lines): for line in file_lines[5:18]: try: self.info = self.info + line.split(":", 1)[1] except: pass def print_sizes(self): print "Package %s is %d K; %d K compressed" % (self.filename, self.size, self.compressed_size) def readPackages(): packagelist = {} for filename in dirlist: packagelist[filename] = package(filename) return packagelist