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