]> code.delx.au - gnu-emacs-elpa/blob - admin/package-update.sh
db99b27942689cc8f630288076d2aa64bc067267
[gnu-emacs-elpa] / admin / package-update.sh
1 #/bin/sh
2
3 ROOT=$1
4 LOG=$ROOT/update-log
5 PKGROOT=$ROOT/packages
6 ADMINROOT=$ROOT/admin
7
8 TARBALL=$PKGROOT/emacs-packages-latest.tgz
9 TARBALL_ROOT="emacs-24.1-packages-`/bin/date +'%F'`"
10
11 REPO=bzr://bzr.savannah.gnu.org/emacs/elpa
12 REPO_PACKAGES=$REPO/packages
13 REPO_ADMIN=$REPO/admin
14
15 if [ -z $ROOT ]; then
16 echo "Syntax: $0 HOMEDIR"
17 exit 1
18 elif [ -d $ROOT ]; then
19 echo "Installing into '$ROOT', log is '$LOG'"
20 echo "Installing into '$ROOT'" > $LOG
21 else
22 echo "Sorry but $ROOT is not a directory, aborting."
23 exit 1
24 fi
25
26
27 ## Create the world-facing copy
28 echo "[$TMPROOT -> $PKGROOT] Creating the world-facing package repository copy in $PKGROOT" >> $LOG
29 TMPROOT=$PKGROOT-new
30 rm -rf $TMPROOT
31 /usr/bin/bzr export $TMPROOT $REPO_PACKAGES
32
33 echo "[$TMPROOT -> $PKGROOT] Running the post-export fetchers in $ADMINROOT against $TMPROOT" >> $LOG
34 rm -rf $ADMINROOT
35 bzr export $ADMINROOT $REPO_ADMIN
36
37 # Copy the org daily package from orgmode.org
38 echo "[$TMPROOT -> $PKGROOT] Running the post-export org-mode fetcher as '$ADMINROOT/org-synch.sh $TMPROOT $ADMINROOT'" >> $LOG
39 $ADMINROOT/org-synch.sh $TMPROOT $ADMINROOT >> $LOG 2>&1
40
41 echo "[$TMPROOT -> $PKGROOT] Moving $TMPROOT to $PKGROOT" >> $LOG
42 /bin/mv $PKGROOT $PKGROOT-old
43 /bin/mv $TMPROOT $PKGROOT
44 /bin/rm -rf $PKGROOT-old
45
46 echo "Exporting packages into $TARBALL (root = $TARBALL_ROOT)" >> $LOG
47 /usr/bin/bzr export --format=tgz --root=$TARBALL_ROOT $TARBALL $REPO_PACKAGES
48
49 /bin/chmod -R a+rX $PKGROOT
50
51 echo "Update complete at" `/bin/date` >> $LOG