#!/bin/bash
# No way I try to deal with a crippled sh just for POSIX foo.
-# Copyright (C) 2009 Joerg Jaspert <joerg@debian.org>
+# Copyright (C) 2009-2012 Joerg Jaspert <joerg@debian.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# exit on errors
set -e
+set -o pipefail
# make sure to only use defined variables
set -u
# ERR traps should be inherited from functions too. (And command
set -E
# import the general variable set.
-export SCRIPTVARS=/srv/ftp.debian.org/dak/config/debian/vars
+export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
. $SCRIPTVARS
########################################################################
error=${ERR:-"true"}
- STAGEFILE="${stagedir}/${FUNC}"
+ ARGS=${ARGS:-""}
+ STAGEFILE="${stagedir}/${FUNC}_${ARGS}"
+ STAGEFILE=${STAGEFILE// /_}
if [ -f "${STAGEFILE}" ]; then
stamptime=$(/usr/bin/stat -c %Z "${STAGEFILE}")
unixtime=$(date +%s)
touch "${DINSTALLSTART}"
ts "startup"
+DINSTALLBEGIN="$(date -u +"%a %b %d %T %Z %Y (%s)")"
+state "Startup"
lockfile -l 3600 "${LOCK_DAILY}"
trap onerror ERR
-trap cleanup EXIT TERM HUP INT QUIT
+trap remove_daily_lock EXIT TERM HUP INT QUIT
touch "${LOCK_BRITNEY}"
stage $GO
GO=(
- FUNC="merkel1"
+ FUNC="qa1"
TIME="init"
ARGS=""
ERR="false"
stage $GO &
GO=(
- FUNC="pgdump_pre"
+ FUNC="pg_timestamp"
TIME="pg_dump1"
- ARGS=""
+ ARGS="predinstall"
ERR=""
)
stage $GO
ARGS=""
ERR="false"
)
-stage $GO &
-
-GO=(
- FUNC="punew"
- TIME="p-u-new"
- ARGS="p-u-new"
- ERR=""
-)
-### TODO: policy-new
-#stage $GO
-
-GO=(
- FUNC="opunew"
- TIME="o-p-u-new"
- ARGS="o-p-u-new"
- ERR=""
-)
-### TODO: policy-new
-#stage $GO
+stage $GO
GO=(
FUNC="i18n1"
ARGS=""
ERR="false"
)
-stage $GO &
+stage $GO
lockfile "$LOCK_ACCEPTED"
lockfile "$LOCK_NEW"
+trap remove_all_locks EXIT TERM HUP INT QUIT
GO=(
- FUNC="process_unchecked"
- TIME="unchecked"
- ARGS=""
- ERR=""
+ FUNC="punew"
+ TIME="p-u-new"
+ ARGS="stable-new"
+ ERR="false"
)
-# disabled until p-u is faster than now. it runs often enough, so wont hurt to save
-# the time here.
-#stage $GO
+stage $GO
+
+GO=(
+ FUNC="opunew"
+ TIME="o-p-u-new"
+ ARGS="oldstable-new"
+ ERR="false"
+)
+stage $GO
GO=(
FUNC="cruft"
)
stage $GO
-rm -f "$LOCK_ACCEPTED"
-rm -f "$LOCK_NEW"
+state "indices"
GO=(
FUNC="dominate"
ARGS=""
ERR=""
)
-stage $GO
+#stage $GO
GO=(
FUNC="fingerprints"
ARGS=""
ERR="false"
)
-stage $GO &
+stage $GO
GO=(
FUNC="overrides"
ARGS=""
ERR="false"
)
-stage $GO &
+stage $GO
+state "packages/contents"
GO=(
FUNC="packages"
TIME="apt-ftparchive"
ARGS=""
ERR=""
)
-# Careful: When we ever go and remove this monster-long thing, we have to check the backgrounded
-# functions before it. We no longer have a 1.5hour sync point then.
stage $GO
+state "dists/"
GO=(
FUNC="pdiff"
TIME="pdiff"
)
stage $GO
+GO=(
+ FUNC="gitpdiff"
+ TIME="gitpdiff"
+ ARGS=""
+ ERR=""
+)
+#stage $GO
+
GO=(
FUNC="release"
TIME="release files"
)
stage $GO
+state "scripts"
GO=(
FUNC="mkmaintainers"
TIME="mkmaintainers"
stage $GO
GO=(
- FUNC="wb"
- TIME="w-b"
+ FUNC="ddaccess"
+ TIME="ddaccessible sync"
ARGS=""
- ERR=""
+ ERR="false"
)
-stage $GO &
+stage $GO
-rm -f "${LOCK_DAILY}"
+remove_all_locks
+trap - EXIT TERM HUP INT QUIT
ts "locked part finished"
+state "postlock"
GO=(
- FUNC="pgdump_post"
- TIME="pg_dump2"
+ FUNC="changelogs"
+ TIME="changelogs"
ARGS=""
- ERR=""
+ ERR="false"
)
stage $GO &
GO=(
- FUNC="expire"
- TIME="expire_dumps"
- ARGS=""
+ FUNC="pg_timestamp"
+ TIME="pg_dump2"
+ ARGS="postdinstall"
ERR=""
)
-stage $GO &
+stage $GO
GO=(
- FUNC="transitionsclean"
- TIME="transitionsclean"
+ FUNC="expire"
+ TIME="expire_dumps"
ARGS=""
ERR=""
)
stage $GO &
GO=(
- FUNC="reports"
- TIME="reports"
+ FUNC="transitionsclean"
+ TIME="transitionsclean"
ARGS=""
ERR=""
)
)
stage $GO &
-GO=(
- FUNC="merkel2"
- TIME="merkel projectb push"
- ARGS=""
- ERR="false"
-)
-stage $GO &
-
GO=(
FUNC="mirrorpush"
TIME="mirrorpush"
rm -f "${LOCK_BRITNEY}"
GO=(
- FUNC="pgdakdev"
- TIME="dak-dev db"
- ARGS=""
- ERR="false"
-)
-stage $GO &
-
-GO=(
- FUNC="merkel3"
- TIME="merkel ddaccessible sync"
- ARGS=""
- ERR="false"
-)
-stage $GO &
-
-GO=(
- FUNC="compress"
- TIME="compress"
+ FUNC="cleantransactions"
+ TIME=""
ARGS=""
ERR=""
)
-stage $GO &
+stage $GO
GO=(
FUNC="aptftpcleanup"
ARGS=""
ERR="false"
)
-stage $GO
+#stage $GO
+
+# we need to wait for the background processes before the end of dinstall
+wait
log "Daily cron scripts successful, all done"
ERR="false"
)
stage $GO
+state "all done"
# Now, at the very (successful) end of dinstall, make sure we remove