Mercurial > treepkg
diff bin/publishdebianpackages.py @ 414:e0539b483b04 treepkg-status
moved data handling in publishdebianpackages into seperate module
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Mon, 26 Jul 2010 08:28:48 +0000 |
parents | 94a6ae627b31 |
children | 4980f8d5014a |
line wrap: on
line diff
--- a/bin/publishdebianpackages.py Fri Jul 23 16:40:38 2010 +0000 +++ b/bin/publishdebianpackages.py Mon Jul 26 08:28:48 2010 +0000 @@ -12,7 +12,6 @@ import os import sys import shlex -import sqlite3 from optparse import OptionParser from ConfigParser import SafeConfigParser @@ -24,6 +23,8 @@ from treepkg.publish import * from treepkg.util import md5sum from treepkg.info.status import TreepkgInfo +from treepkg.info.data import Package +from treepkg.info.data import CacheDb config_desc = ["distribution", "section", "num_newest", "build_user", "build_host", "build_listpackages", @@ -35,90 +36,6 @@ ("cachedir", lambda s: expand_filename(remove_trailing_slashes(s)))] -class Package: - - def __init__(self, filename, trackname, packagename, packagepath, arch, md5sum): - self.filename = filename - self.trackname = trackname - self.name = packagename - self.sourcepath = packagepath - self.arch = arch - self.md5sum = md5sum - - -class CacheDb: - - - def __init__(self, file): - self.SELECT_PACKAGE_TMPL = """SELECT * FROM packages - WHERE filename = ?""" - self.file = file - self.conn = sqlite3.connect(file) - self.cursor = self.conn.cursor() - self.init_db(file) - - def init_db(self, file): - self.cursor.execute( - """CREATE TABLE IF NOT EXISTS packages ( - filename TEXT PRIMARY KEY, - trackname TEXT, - packagename TEXT, - sourcepath TEXT, - arch TEXT, - md5sum TEXT )""") - self.conn.commit() - - - def add_package(self, package): - self.cursor.execute(self.SELECT_PACKAGE_TMPL, (package.filename,)) - row = self.cursor.fetchone() - if not row: - self.insert_package(package) - else: - self.update_package(package) - - def insert_package(self, package): - INSERT_TMPL = """INSERT INTO packages VALUES ( - ?, ?, ? ,? ,?, ?)""" - self.cursor.execute(INSERT_TMPL, (package.filename, - package.trackname, - package.name, - package.sourcepath, - package.arch, - package.md5sum)) - self.conn.commit() - - def update_package(self, package): - UPDATE_TMPL = """UPDATE packages set md5sum = '?' - WHERE filename in (?)""" - self.cursor.execute(UPDATE_TMPL, (package.md5sum, package.filename)) - self.conn.commit() - - def get_package(self, filename): - self.cursor.execute(self.SELECT_PACKAGE_TMPL, (filename,)) - row = self.cursor.fetchone() - if not row: - return None - return Package(row[0], row[1], row[2], row[3], row[4], row[5]) - - def get_old_packages(self, newfiles): - SELECT_TMPL = """SELECT * FROM packages - WHERE filename not in (%s)""" - tmp = ", ".join(['?'] * len(newfiles)) - self.cursor.execute(SELECT_TMPL % tmp, newfiles) - return [Package(*row) for row in self.cursor.fetchall()] - - def remove_packages(self, files): - DELET_TMPL = """DELETE FROM packages - WHERE filename in (%s)""" - tmp = ", ".join(['?'] * len(files)) - self.cursor.execute(DELET_TMPL % tmp, files) - self.conn.commit() - - def get_packages(self): - SELECT_TMPL = "SELECT * FROM packages" - self.cursor.execute(SELECT_TMPL) - return [Package(*row) for row in self.cursor.fetchall()] def read_config(filename): if not os.path.exists(filename): @@ -155,7 +72,8 @@ runremote = prefix_for_remote_command(variables["build_user"], variables["build_host"]) xml = capture_output(cmdexpand("@runremote $build_listpackages" - " --newest=$num_newest", + " --newest=$num_newest" + " --only-successful", runremote=runremote, **variables)) return TreepkgInfo.fromxml(xml)