From e5de2bea9fd100931cc984c6f2bdff2527f719fa Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 1 Jul 2011 18:34:21 -0400 Subject: [PATCH] Implement archive deployment functionality directly, instead of calling admin script. --- Makefile | 59 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 115cbb068..71686a07d 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,55 @@ # Makefile for GNU Emacs Lisp Package Archive. -ARCHIVE_DIR=archive +EMACS=emacs -## Deploy the package archive to archive/ -archive: packages - mkdir -p $(ARCHIVE_DIR) - admin/package-update.sh $(ARCHIVE_DIR) +ARCHIVE_TMP=archive-tmp +PACKAGE_SITE_DIR=site + +## Set up the source files for direct usage, by pointing +## `package-directory-list' to site/ +site: packages + mkdir -p $(PACKAGE_SITE_DIR) + +.PHONY: archive-tmp process-archive archive-full org-fetch + +## Deploy the package archive to archive/, with packages in +## archive/packages/: +archive: archive-tmp + $(MAKE) $(MFLAGS) process-archive + +archive-tmp: packages + mkdir -p $(ARCHIVE_TMP) + cp -r packages $(ARCHIVE_TMP) + +process-archive: + cd $(ARCHIVE_TMP)/packages; $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el -f batch-make-archive + @cd $(ARCHIVE_TMP)/packages; \ + for pt in *; do \ + if [ -d $$pt ]; then \ + echo "Creating tarball $${pt}.tar" && \ + tar -cf $${pt}.tar $$pt --remove-files; \ + fi; \ + done + mkdir -p archive/packages + mv archive/packages archive/packages-old + mv $(ARCHIVE_TMP)/packages archive/packages + chmod -R a+rX archive/packages + rm -rf archive/packages-old + rm -rf $(ARCHIVE_TMP) ## Deploy the package archive to archive/ including the Org daily and -## admin scripts. -full-archive: .PHONY - mkdir -p $(ARCHIVE_DIR) - admin/package-update.sh $(ARCHIVE_DIR) 1 +## admin scripts: +archive-full: archive-tmp org-fetch + $(MAKE) $(MFLAGS) process-archive + mkdir -p archive/admin + cp admin/* archive/admin/ -.PHONY: +org-fetch: archive-tmp + cd archive-tmp/packages; \ + pkgname=`curl -s http://orgmode.org/pkg/daily/|perl -ne 'push @f, $$1 if m/(org-\d{8})\.tar/; END { @f = sort @f; print "$$f[-1]\n"}'`; \ + wget http://orgmode.org/pkg/daily/$${pkgname}.tar -O $${pkgname}.tar; \ + if [ -f $${pkgname}.tar ]; then \ + tar xf $${pkgname}.tar; \ + rm -f $${pkgname}.tar; \ + mv $${pkgname} org; \ + fi -- 2.39.2