X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=config%2Fdebian%2Fdinstall;h=9ee1781cc83f9ad994a860c4db45a7843066b0b7;hb=411333f097fae83f84e8f08f8daf4ed1fa56cf4d;hp=6a929c84e3cf27982ccfc612538936c165a78e7d;hpb=448a2ec5bc713d5dbdd9223c530303615622438c;p=dak.git diff --git a/config/debian/dinstall b/config/debian/dinstall index 6a929c84..9ee1781c 100755 --- a/config/debian/dinstall +++ b/config/debian/dinstall @@ -63,8 +63,8 @@ function ts() { # Cleanup actions function cleanup() { - savelog -c ${LOGROTATE} -j "$LOGFILE" rm -f ${LOCK_DAILY} + rm -f ${LOCK_ACCEPTED} } # Setup the notice file to tell bad mirrors they used the wrong time @@ -167,10 +167,9 @@ function i18n1() { # Process the accepted queue function accepted() { log "Processing queue/accepted" - cd "$accepted" - rm -f REPORT - dak process-accepted -pa *.changes | tee REPORT | \ - mail -s "Install for $(date +"%D - %R")" ftpmaster@ftp-master.debian.org + rm -f "$accepted/REPORT" + dak process-accepted -pa -d "$accepted" > "$accepted/REPORT" + cat REPORT | mail -s "Install for $(date +"%D - %R")" ftpmaster@ftp-master.debian.org chgrp debadmin REPORT chmod 664 REPORT } @@ -314,7 +313,7 @@ function i18n2() { ln -sfT ${scriptdir}/i18n/${STAMP} i18n cd ${scriptdir} - find ./i18n -mtime +2 -mindepth 1 -maxdepth 1 -not -name "${STAMP}" -type d -print0 | xargs --no-run-if-empty -0 rm -rf + find ./i18n -mindepth 1 -maxdepth 1 -mtime +2 -not -name "${STAMP}" -type d -print0 | xargs --no-run-if-empty -0 rm -rf } function stats() { @@ -385,6 +384,11 @@ function stage() { # it has to cd first! cd ${configdir} + if [ -f "${LOCK_STOP}" ]; then + log "${LOCK_STOP} exists, exiting immediately" + exit 42 + fi + if [ "${ERR}" = "false" ]; then set +e fi @@ -398,6 +402,11 @@ function stage() { touch "${stagedir}/${FUNC}" + if [ -f "${LOCK_STOP}" ]; then + log "${LOCK_STOP} exists, exiting immediately" + exit 42 + fi + if [ -n "${TIME}" ]; then ts "${TIME}" fi @@ -446,6 +455,10 @@ LOCK_ACCEPTED="$lockdir/unchecked.lock" # from our point of view LOCK_BRITNEY="$lockdir/britney.lock" +# If this file exists we exit immediately after the currently running +# function is done +LOCK_STOP="$lockdir/archive.stop" + lockfile -l 3600 "${LOCK_DAILY}" trap cleanup EXIT ERR TERM HUP INT QUIT @@ -479,7 +492,7 @@ GO=( FUNC="updates" TIME="External Updates" ARGS="" - ERR="" + ERR="false" ) stage $GO @@ -525,7 +538,7 @@ GO=( ) stage $GO -rm -f $LOCKAC +rm -f "$LOCK_ACCEPTED" GO=( FUNC="msfl" @@ -702,7 +715,7 @@ GO=( ) stage $GO -rm -f ${BRITNEYLOCK} +rm -f ${LOCK_BRITNEY} GO=( FUNC="aptftpcleanup" @@ -734,6 +747,8 @@ stage $GO cat "$LOGFILE" | mail -s "Log for dinstall run of ${NOW}" cron@ftp-master.debian.org +savelog -c ${LOGROTATE} -j "$LOGFILE" + # Now, at the very (successful) end of dinstall, make sure we remove # our stage files, so the next dinstall run will do it all again. rm -f "${stagedir}/*"