X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_new.py;h=6be42d3340c84124150b8db89a7562373d491601;hb=0e676b15ed7c6e1fbd073e8d17da8dd9401cfa48;hp=8741d25ec887e0e19304b174473772ab47ae5119;hpb=0d80b258098ff470433efa4d9c1f81b404883195;p=dak.git diff --git a/dak/process_new.py b/dak/process_new.py index 8741d25e..6be42d33 100755 --- a/dak/process_new.py +++ b/dak/process_new.py @@ -1,9 +1,13 @@ #!/usr/bin/env python # vim:set et ts=4 sw=4: -""" Handles NEW and BYHAND packages """ -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 James Troup +""" Handles NEW and BYHAND packages +@contact: Debian FTP Master +@copyright: 2001, 2002, 2003, 2004, 2005, 2006 James Troup +@copyright: 2009 Joerg Jaspert +@license: GNU General Public License version 2 or later +""" # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -37,7 +41,13 @@ ################################################################################ -import copy, errno, os, readline, stat, sys, time +import copy +import errno +import os +import readline +import stat +import sys +import time import apt_pkg, apt_inst import examine_package from daklib import database @@ -47,10 +57,10 @@ from daklib import utils from daklib.regexes import re_no_epoch, re_default_answer, re_isanum # Globals -Cnf = None +Cnf = None #: Configuration, apt_pkg.Configuration Options = None Upload = None -projectB = None +projectB = None #: database connection, pgobject Logger = None Priorities = None @@ -210,7 +220,7 @@ def sort_changes(changes_files): mtime = os.stat(d["filename"])[stat.ST_MTIME] if mtime < oldest: oldest = mtime - have_note += (d.has_key("process-new note")) + have_note += (database.has_new_comment(d["source"], d["version"])) per_source[source]["oldest"] = oldest if not have_note: per_source[source]["note_state"] = 0; # none @@ -292,11 +302,10 @@ def print_new (new, indexed, file=sys.stdout): line = "%-20s %-20s %-20s" % (pkg, priority, section) line = line.strip()+'\n' file.write(line) - note = Upload.pkg.changes.get("process-new note") - if note: - print "*"*75 - print note - print "*"*75 + note = database.get_new_comments(Upload.pkg.changes.get("source")) + if len(note) > 0: + for line in note: + print line return broken, note ################################################################################ @@ -460,7 +469,9 @@ def edit_note(note): # Write the current data to a temporary file (fd, temp_filename) = utils.temp_filename() temp_file = os.fdopen(fd, 'w') - temp_file.write(note) + if len(note) > 0: + for line in note: + temp_file.write(line) temp_file.close() editor = os.environ.get("EDITOR","vi") answer = 'E' @@ -485,8 +496,7 @@ def edit_note(note): elif answer == 'Q': end() sys.exit(0) - Upload.pkg.changes["process-new note"] = note - Upload.dump_vars(Cnf["Dir::Queue::New"]) + database.add_new_comment(Upload.pkg.changes["source"], Upload.pkg.changes["version"], note, utils.whoami()) ################################################################################ @@ -507,6 +517,7 @@ def check_pkg (): elif ftype == "dsc": examine_package.check_dsc(changes['distribution'], f) finally: + examine_package.output_package_relations() sys.stdout = stdout_fd except IOError, e: if e.errno == errno.EPIPE: @@ -682,13 +693,13 @@ def do_new(): os.unlink(Upload.pkg.changes_file[:-8]+".dak") done = 1 elif answer == 'N': - edit_note(changes.get("process-new note", "")) + edit_note(database.get_new_comments(changes.get("source", ""))) elif answer == 'P': prod_maintainer() elif answer == 'R': confirm = utils.our_raw_input("Really clear note (y/N)? ").lower() if confirm == "y": - del changes["process-new note"] + database.delete_new_comments(changes.get("source"), changes.get("version")) elif answer == 'S': done = 1 elif answer == 'Q': @@ -727,6 +738,9 @@ def init(): Cnf["Process-New::Options::%s" % (i)] = "" changes_files = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) + if len(changes_files) == 0 and not Cnf.get("Process-New::Options::Comments-Dir",""): + changes_files = utils.get_changes_files(Cnf["Dir::Queue::New"]) + Options = Cnf.SubTree("Process-New::Options") if Options["Help"]: @@ -842,7 +856,7 @@ def move_to_holding(suite, queue_dir): return Logger.log(["Moving to %s" % (suite,), Upload.pkg.changes_file]) Upload.dump_vars(queue_dir) - move_to_dir(queue_dir) + move_to_dir(queue_dir, perms=0664) os.unlink(Upload.pkg.changes_file[:-8]+".dak") def _accept():