--- /dev/null
+#!/bin/bash
+
+if [ -z "$1" ]; then
+cat << EOT
+Script to re-build entire archive from one release for another.
+
+Often usecase -- rebuilding for a new Ubuntu brew every 6 months.
+
+Synopsis
+--------
+
+ nd_rebuildarchive old_release new_release
+
+e.g.
+
+ nd_rebuildarchive natty oneiric
+
+EOT
+exit 1
+fi
+
+set -eu
+
+old_dist=$1
+dist=$2
+
+# some NeuroDebian variables hardcoded in for now
+repo_server=neuro.debian.net
+repo_user=neurodebian
+repo_toppath=www
+repo_urlpath=debian
+repo_distspath=$repo_toppath/$repo_urlpath/dists
+
+family=nd+ubuntu
+
+list_file="$old_dist-$dist.list"
+summary_file="$old_dist-$dist.summary"
+
+[ -e "$list_file" ] || \
+ ssh -l $repo_user $repo_server cat $repo_distspath/$old_dist/*/source/Sources.gz \
+ | zgrep -e '^\(Package\|Directory\| [a-z0-9]\{32\} [0-9]* \S*.dsc$\)' \
+ | sed -e 's,.* \([^ ][^ ]*\)$,\1,g' | tr '\n' ' '| sed -e 's,\.dsc,.dsc\n,g' \
+ > "$list_file"
+
+CMD=
+#echo
+dist_id=$(nd_querycfg "release backport ids" "$dist")
+cat $list_file \
+| while read name topdir dscfile; do
+ echo "I: Forwardporting for $dist_id $dscfile"
+
+ [ -e $dscfile ] \
+ || dget -d http://$repo_server/$repo_urlpath/$topdir/$dscfile || {
+ echo -e "E: $dscfile\t\tFAILED to fetch" >> $summary_file
+ continue
+ }
+
+
+ bpdscfile=$(/home/neurodebian/neurodebian/tools/backport-dsc \
+ --target-distribution "$dist" \
+ --no-maintainer-update \
+ --version-prefix "+" \
+ --version-suffix "$dist_id" \
+ "$dscfile" | tail -n1 | sed -e 's/^.* //g')
+
+ echo " I: Building backported dscfile: $bpdscfile"
+
+ $CMD sudo nd_build $family $dist $bpdscfile && {
+ echo -e "I: $bpdscfile\t\tOk" >> $summary_file
+ } || {
+ echo -e "E: $bpdscfile\t\tFAILED to build" >> $summary_file
+ }
+done
\ No newline at end of file