X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_commands.py;h=d3c794c254c7b8ba6497952b501c6634a38807a4;hb=c8349f01107a0ba259421b8527d9adfd64606576;hp=a4ae1f505dab130d65ef53adfb6f0c09c16d377d;hpb=9b194c0a49096be2d659906c98500d2981b75b53;p=dak.git 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)