From: Ansgar Burchardt Date: Thu, 20 Sep 2012 10:15:01 +0000 (+0200) Subject: dak/process_commands.py: remove all processed files to done X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=69dfbae0211fa24722afc05f789d3f972fe75259 dak/process_commands.py: remove all processed files to done We want all files that were processed to be moved to done. It would be confusing to have files in reject when we did evaluate some of the commands from there and only encountered an error later. Files that do not pass the GPG check are still moved to the reject directory. --- diff --git a/dak/process_commands.py b/dak/process_commands.py index a4ae1f50..d3c794c2 100644 --- a/dak/process_commands.py +++ b/dak/process_commands.py @@ -20,11 +20,13 @@ import apt_pkg import datetime import os import sys +import time from daklib.config import Config from daklib.command import CommandError, CommandFile from daklib.daklog import Logger from daklib.fstransactions import FilesystemTransaction +from daklib.gpg import GpgException from daklib.utils import find_next_free def usage(): @@ -64,13 +66,21 @@ def main(argv=None): log.log(['unexpected filename', basename]) continue - command = CommandFile(fn, log) - if command.evaluate(): - log.log(['moving to done', basename]) - dst = find_next_free(os.path.join(donedir, basename)) - else: - log.log(['moving to reject', basename]) + try: + command = CommandFile(fn, log) + command.evaluate() + except: + created = os.stat(fn).st_mtime + now = time.time() + too_new = (now - created < int(cnf.get('Dinstall::SkipTime', '60'))) + if too_new: + log.log(['skipped (too new)']) + continue + log.log(['reject', basename]) dst = find_next_free(os.path.join(rejectdir, basename)) + else: + log.log(['done', basename]) + dst = find_next_free(os.path.join(donedir, basename)) with FilesystemTransaction() as fs: fs.move(fn, dst, mode=0o644)