#!/bin/sh
+# this script expects $1 to be the download directory and $2 to have org-synch.el
+
pkgname=`/usr/bin/curl -s http://orgmode.org/pkg/daily/|/usr/bin/perl -ne 'push @f, $1 if m/(org-\d{8}\.tar)/; END { @f = sort @f; print "$f[-1]\n"}'`
-cd /home/elpa/
-/usr/bin/wget -q http://orgmode.org/pkg/daily/$pkgname
-if [ -f $pkgname ]; then
- /bin/rm -f packages/org*.tar && \
- /bin/mv $pkgname packages-new && \
- /usr/bin/emacs -batch -l /home/elpa/bin/org-synch.el -f org-synch &> /home/elpa/update-log
+cd $1
+/usr/bin/wget -q http://orgmode.org/pkg/daily/$pkgname -O ${pkgname}-tmp
+if [ -f ${pkgname}-tmp ]; then
+ /bin/rm -f org*.tar
+ /bin/mv ${pkgname}-tmp $pkgname && \
+ /usr/bin/emacs -batch -l $2/org-synch.el -f org-synch
fi
#/bin/sh
-/bin/rm /home/elpa/update-log
+ROOT=$1
+LOG=$ROOT/update-log
+PKGROOT=$ROOT/packages
+ADMINROOT=$ROOT/admin
+
+TARBALL=$PKGROOT/emacs-packages-latest.tgz
+TARBALL_ROOT="emacs-24.1-packages-`/bin/date +'%F'`"
+
+REPO=bzr://bzr.savannah.gnu.org/emacs/elpa
+REPO_PACKAGES=$REPO/packages
+REPO_ADMIN=$REPO/admin
+
+if [ -z $ROOT ]; then
+ echo "Syntax: $0 HOMEDIR"
+ exit 1
+elif [ -d $ROOT ]; then
+ echo "Installing into '$ROOT', log is '$LOG'"
+ echo "Installing into '$ROOT'" > $LOG
+else
+ echo "Sorry but $ROOT is not a directory, aborting."
+ exit 1
+fi
+
## Create emacs-packages-latest.tgz
-/usr/bin/bzr export --format=tgz --root=emacs-24.1-packages-`/bin/date +'%F'` /home/elpa/emacs-packages-latest.tgz /home/elpa/package-repo
+echo "Exporting packages into $TARBALL (root = $TARBALL_ROOT)" >> $LOG
+/usr/bin/bzr export --format=tgz --root=$TARBALL_ROOT $TARBALL $REPO_PACKAGES
## Create the world-facing copy
-rm -rf /home/elpa/packages-new
-/usr/bin/bzr export /home/elpa/packages-new /home/elpa/package-repo
+echo "[$TMPROOT -> $PKGROOT] Creating the world-facing package repository copy in $PKGROOT" >> $LOG
+TMPROOT=$PKGROOT-new
+rm -rf $TMPROOT
+/usr/bin/bzr export $TMPROOT $REPO_PACKAGES
+
+echo "[$TMPROOT -> $PKGROOT] Running the post-export fetchers in $ADMINROOT against $TMPROOT" >> $LOG
+rm -rf $ADMINROOT
+bzr export $ADMINROOT $REPO_ADMIN
# Copy the org daily package from orgmode.org
-/home/elpa/bin/org-synch.sh
+echo "[$TMPROOT -> $PKGROOT] Running the post-export org-mode fetcher as '$ADMINROOT/org-synch.sh $TMPROOT $ADMINROOT'" >> $LOG
+$ADMINROOT/org-synch.sh $TMPROOT $ADMINROOT >> $LOG 2>&1
-/bin/mv /home/elpa/packages /home/elpa/packages-old
-/bin/mv /home/elpa/packages-new /home/elpa/packages
-/bin/rm -rf /home/elpa/packages-old
+echo "[$TMPROOT -> $PKGROOT] Moving $TMPROOT to $PKGROOT" >> $LOG
+/bin/mv $PKGROOT $PKGROOT-old
+/bin/mv $TMPROOT $PKGROOT
+/bin/rm -rf $PKGROOT-old
-/bin/chmod -R a+rX /home/elpa/packages
+/bin/chmod -R a+rX $PKGROOT
-/bin/echo "Update complete at" `/bin/date` >> /home/elpa/update-log
+echo "Update complete at" `/bin/date` >> $LOG