- ;; Test whether this is a simple or multi-file package.
- (setq simple-p (archive--simple-package-p dir pkg))
- (push (if (car simple-p)
- (apply #'archive--process-simple-package
- dir pkg (cdr simple-p))
- (if simple-p
- (apply #'archive--write-pkg-file
- dir pkg (cdr simple-p)))
- (archive--process-multi-file-package dir pkg))
- packages)))
+ (let ((metadata (or (with-demoted-errors
+ ;;(format "batch-make-archive %s: %%s" dir)
+ (archive--metadata dir pkg))
+ '(nil "0"))))
+ ;; (nth 1 metadata) is nil for "org" which is the only package
+ ;; still using the "org-pkg.el file to specify the metadata.
+ (if (and (nth 1 metadata)
+ (or (equal (nth 1 metadata) "0")
+ ;; Old deprecated convention.
+ (< (string-to-number (nth 1 metadata)) 0)))
+ (progn ;; Negative version: don't publish this package yet!
+ (message "Package %s not released yet!" dir)
+ (delete-directory dir 'recursive))
+ (push (if (car metadata)
+ (apply #'archive--process-simple-package
+ dir pkg (cdr metadata))
+ (if (nth 1 metadata)
+ (apply #'archive--write-pkg-file
+ dir pkg (cdr metadata)))
+ (archive--process-multi-file-package dir pkg))
+ packages)))))