From: Mark Hymers Date: Sat, 21 Feb 2009 20:48:21 +0000 (+0000) Subject: allow p-a and p-u to take a directory to parse themselves X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=7977dd3c83fd5f1c03ec1e5d79df90ca2663354c;p=dak.git allow p-a and p-u to take a directory to parse themselves This prevents any possible issues with maximum command line lengths when using shell globbing. Signed-off-by: Mark Hymers --- diff --git a/config/debian/cron.unchecked b/config/debian/cron.unchecked index 41b66401..a2eb6d38 100755 --- a/config/debian/cron.unchecked +++ b/config/debian/cron.unchecked @@ -31,7 +31,7 @@ if lockfile -r3 $LOCKFILE; then if [ ! -z "$changes" ]; then echo "$timestamp": "$changes" >> $report - dak process-unchecked -a $changes >> $report + dak process-unchecked -a -d /srv/ftp.debian.org/queue/unchecked >> $report echo "--" >> $report # sync with debbugs diff --git a/config/debian/dinstall b/config/debian/dinstall index d38503ce..a4244e37 100755 --- a/config/debian/dinstall +++ b/config/debian/dinstall @@ -169,7 +169,7 @@ function accepted() { log "Processing queue/accepted" cd "$accepted" rm -f REPORT - dak process-accepted -pa *.changes > REPORT + dak process-accepted -pa -d /srv/ftp.debian.org/queue/accepted > REPORT cat REPORT | mail -s "Install for $(date +"%D - %R")" ftpmaster@ftp-master.debian.org chgrp debadmin REPORT chmod 664 REPORT diff --git a/dak/process_accepted.py b/dak/process_accepted.py index d626db96..07d611d5 100755 --- a/dak/process_accepted.py +++ b/dak/process_accepted.py @@ -162,9 +162,11 @@ def init(): ('h',"help","Dinstall::Options::Help"), ('n',"no-action","Dinstall::Options::No-Action"), ('p',"no-lock", "Dinstall::Options::No-Lock"), - ('s',"no-mail", "Dinstall::Options::No-Mail")] + ('s',"no-mail", "Dinstall::Options::No-Mail"), + ('d',"directory", "Dinstall::Options::Directory")] - for i in ["automatic", "help", "no-action", "no-lock", "no-mail", "version"]: + for i in ["automatic", "help", "no-action", "no-lock", "no-mail", + "version", "directory"]: if not Cnf.has_key("Dinstall::Options::%s" % (i)): Cnf["Dinstall::Options::%s" % (i)] = "" @@ -174,6 +176,21 @@ def init(): if Options["Help"]: usage() + # If we have a directory flag, use it to find our files + if Cnf["Dinstall::Options::Directory"] != "": + # Note that we clobber the list of files we were given in this case + # so warn if the user has done both + if len(changes_files) > 0: + utils.warn("Directory provided so ignoring files given on command line") + + dir = Cnf["Dinstall::Options::Directory"] + try: + # Much of the rest of p-a depends on being in the right place + os.chdir(dir) + changes_files = [x for x in os.listdir(dir) if x.endswith('.changes')] + except OSError, e: + utils.fubar("Failed to read list from directory %s (%s)" % (dir, e)) + Upload = queue.Upload(Cnf) projectB = Upload.projectB diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index 288563af..e0457260 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -78,10 +78,11 @@ def init(): ('h',"help","Dinstall::Options::Help"), ('n',"no-action","Dinstall::Options::No-Action"), ('p',"no-lock", "Dinstall::Options::No-Lock"), - ('s',"no-mail", "Dinstall::Options::No-Mail")] + ('s',"no-mail", "Dinstall::Options::No-Mail"), + ('d',"directory", "Dinstall::Options::Directory")] for i in ["automatic", "help", "no-action", "no-lock", "no-mail", - "override-distribution", "version"]: + "override-distribution", "version", "directory"]: Cnf["Dinstall::Options::%s" % (i)] = "" changes_files = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) @@ -90,6 +91,21 @@ def init(): if Options["Help"]: usage() + # If we have a directory flag, use it to find our files + if Cnf["Dinstall::Options::Directory"] != "": + # Note that we clobber the list of files we were given in this case + # so warn if the user has done both + if len(changes_files) > 0: + utils.warn("Directory provided so ignoring files given on command line") + + dir = Cnf["Dinstall::Options::Directory"] + try: + # Much of the rest of p-u depends on being in the right place + os.chdir(dir) + changes_files = [x for x in os.listdir(dir) if x.endswith('.changes')] + except OSError, e: + utils.fubar("Failed to read list from directory %s (%s)" % (dir, e)) + Upload = queue.Upload(Cnf) changes = Upload.pkg.changes