------------------------------------------------------------ revno: 280 committer: Stefan Monnier <monn...@iro.umontreal.ca> branch nick: elpa timestamp: Mon 2012-10-22 17:56:43 -0400 message: * admin/archive-contents.el (batch-make-site-package): New function. * Makefile (site/%): Use it. modified: Makefile admin/archive-contents.el
=== modified file 'Makefile' --- a/Makefile 2012-10-08 04:05:54 +0000 +++ b/Makefile 2012-10-22 21:56:43 +0000 @@ -5,7 +5,7 @@ ARCHIVE_TMP=archive-tmp SITE_DIR=site -.PHONY: archive-tmp process-archive archive-full org-fetch clean all +.PHONY: archive-tmp process-archive archive-full org-fetch clean all do-it ## Set up the source files for direct usage, by pointing ## `package-directory-list' to the site/ directory. @@ -14,6 +14,10 @@ $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el \ --eval "(batch-make-site-dir \"packages\" \"$(SITE_DIR)\")" +site/%: do-it + $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el \ + --eval "(progn (setq debug-on-error t) (batch-make-site-package \"$@\"))" + ## Deploy the package archive to archive/, with packages in ## archive/packages/: archive: archive-tmp
=== modified file 'admin/archive-contents.el' --- a/admin/archive-contents.el 2012-05-05 05:07:32 +0000 +++ b/admin/archive-contents.el 2012-10-22 21:56:43 +0000 @@ -1,6 +1,6 @@ ;;; archive-contents.el --- Auto-generate an Emacs Lisp package archive. -;; Copyright (C) 2011 Free Software Foundation, Inc +;; Copyright (C) 2011, 2012 Free Software Foundation, Inc ;; Author: Stefan Monnier <monn...@iro.umontreal.ca> @@ -22,6 +22,7 @@ ;;; Code: (require 'lisp-mnt) +(require 'package) (defconst archive-contents-subdirectory-regexp "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)") @@ -187,7 +188,7 @@ (setq package-dir (expand-file-name package-dir default-directory)) (setq site-dir (expand-file-name site-dir default-directory)) (dolist (dir (directory-files package-dir t archive-re-no-dot)) - (condition-case v + (condition-case v (if (not (file-directory-p dir)) (error "Skipping non-package file %s" dir) (let* ((pkg (file-name-nondirectory dir)) @@ -218,6 +219,16 @@ ;; Error handler (error (message "%s" (cadr v)))))) +(defun batch-make-site-package (sdir) + (let* ((dest (car (file-attributes sdir))) + (pkg (file-name-nondirectory (directory-file-name (or dest sdir)))) + (dir (or dest sdir))) + (let ((make-backup-files nil)) + (package-generate-autoloads pkg dir)) + (let ((load-path (cons dir load-path))) + ;; FIXME: Don't compile the -pkg.el files! + (byte-recompile-directory dir 0)))) + (defun archive--write-pkg-file (pkg-dir name version desc requires &rest ignored) (let ((pkg-file (expand-file-name (concat name "-pkg.el") pkg-dir)) (print-level nil)