- (let ((requires-str (lm-header "package-requires")))
- (if requires-str
- (setq req (mapcar 'archive--convert-require
- (car (read-from-string requires-str))))))
- (list (= (length files) 1) version description req))))
- ((not (file-exists-p pkg-file))
- (error "Can find single file nor package desc file in %s" dir)))))
-
-(defun archive--process-simple-package (dir pkg vers desc req)
+ (let* ((description (match-string 1))
+ (version
+ (or (archive--strip-rcs-id (lm-header "package-version"))
+ (archive--strip-rcs-id (lm-header "version"))
+ (unless (equal pkg "org")
+ (error "Missing `version' header"))))
+ (requires-str (lm-header "package-requires"))
+ (pt (lm-header "package-type"))
+ (simple (if pt (equal pt "simple") (= (length files) 1)))
+ (keywords (lm-keywords-list))
+ (url (or (lm-header "url")
+ (format archive-default-url-format pkg)))
+ (req
+ (if requires-str
+ (mapcar 'archive--convert-require
+ (car (read-from-string requires-str))))))
+ (list simple version description req
+ ;; extra parameters
+ (list (cons :url url)
+ (cons :keywords keywords)))))))
+ (t
+ (error "Can find main file %s file in %s" mainfile dir)))))
+
+(defun archive--process-simple-package (dir pkg vers desc req extras)