+
+# Function to update a "statefile" telling people what we are doing
+# (more or less).
+#
+# This should be called with the argument(s)
+# - Status name we want to show.
+#
+function state() {
+ RIGHTNOW="$(date -u +"%a %b %d %T %Z %Y (%s)")"
+ cat >"${DINSTALLSTATE}" <<EOF
+Dinstall start: ${DINSTALLBEGIN}
+Current action: ${1}
+Action start: ${RIGHTNOW}
+EOF
+}
+
+# extract changelogs and stuff
+function changelogs() {
+ if lockfile -r3 $LOCK_CHANGELOG; then
+ log "Extracting changelogs"
+ dak make-changelog -e -a ftp-master
+ [ -f ${exportdir}/changelogs/filelist.yaml ] && xz -f ${exportdir}/changelogs/filelist.yaml
+ mkdir -p ${exportpublic}/changelogs
+ cd ${exportpublic}/changelogs
+ rsync -aHW --delete --delete-after --ignore-errors ${exportdir}/changelogs/. .
+ sudo -H -u staticsync /usr/local/bin/static-update-component ftp-master.metadata.debian.org >/dev/null 2>&1 &
+
+ #dak make-changelog -e -a backports
+ #[ -f /srv/backports-master.debian.org/export/changelogs/filelist.yaml ] && xz -f /srv/backports-master.debian.org/export/changelogs/filelist.yaml
+ #mkdir -p /srv/backports-master.debian.org/rsync/export/changelogs
+ #cd /srv/backports-master.debian.org/rsync/export/changelogs
+ #rsync -aHW --delete --delete-after --ignore-errors /srv/backports-master.debian.org/export/changelogs/. .
+ trap remove_changelog_lock EXIT TERM HUP INT QUIT
+ fi
+}
+
+function gitpdiff() {
+ # Might be that we want to change this to have more than one git repository.
+ # Advantage of one is that we do not need much space in terms of storage in git itself,
+ # git gc is pretty good on our input.
+ # But it might be faster. Well, lets test.
+ log "Adjusting the git tree for pdiffs"
+ cd ${dbdir}/git/git/
+
+ # The regex needs the architectures seperated with \|
+ garchs=$(dak admin a list|sed -e ':q;N;s/\n/\\|/g;t q')
+
+ # First, get all the files we want to work on. ../dists/ is a symlink to the real dists/ we
+ # want to work with.
+ # Also, we only want contents, packages and sources.
+ for file in $(find ../dists/ -regex ".*/\(Contents-\($archs\)\|\(Packages\|Sources\)\).gz"); do
+ log "${file}"
+ basen=${file%%.gz};
+ basen=${basen##../};
+ dir=${basen%/*};
+ mkdir -p $dir;
+ zcat $file > $basen;
+ done
+
+ # Second, add all there is into git
+ cd dists
+ git add .
+ # Maybe we want to make this the same for tag and commit? But well, shouldn't matter
+ COMD=$(date -Is)
+ TAGD=$(date +%Y-%m-%d-%H-%M)
+ git commit -m "Commit of ${COMD}"
+ git tag "${TAGD}"
+ }