branch: elpa-admin commit 8ee477062712545321a2810c964e45f9756a8e4a Author: Thien-Thi Nguyen <t...@gnu.org> Commit: Thien-Thi Nguyen <t...@gnu.org>
[admin int] Add abstraction: archive--form-from-file-contents * admin/archive-contents.el (archive--form-from-file-contents): New func. (archive--multi-file-package-def, archive--get-prop) (archive--read-externals-list, archive--html-make-index): Use it. --- admin/archive-contents.el | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/admin/archive-contents.el b/admin/archive-contents.el index 67f4414..6f2fc76 100755 --- a/admin/archive-contents.el +++ b/admin/archive-contents.el @@ -299,15 +299,21 @@ Rename DIR/ to PKG-VERS/, and return the descriptor." (cons (intern pkg) (vector (archive--version-to-list vers) req (nth 3 exp) 'tar extras)))) +(defun archive--form-from-file-contents (filename) + (with-temp-buffer + (insert-file-contents filename) + ;; This is unnecessary because ‘with-temp-buffer’ generates a new + ;; (empty) buffer, and ‘insert-file-contents’ inserts after point. + ;; In other words, point is alraedy at bob. + ;;- (goto-char (point-min)) + (read (current-buffer)))) + (defun archive--multi-file-package-def (dir pkg) "Return the `define-package' form in the file DIR/PKG-pkg.el." (let ((pkg-file (expand-file-name (concat pkg "-pkg.el") dir))) - (with-temp-buffer - (unless (file-exists-p pkg-file) - (error "File not found: %s" pkg-file)) - (insert-file-contents pkg-file) - (goto-char (point-min)) - (read (current-buffer))))) + (unless (file-exists-p pkg-file) + (error "File not found: %s" pkg-file)) + (archive--form-from-file-contents pkg-file))) (defun archive--refresh-pkg-file () (let* ((dir (directory-file-name default-directory)) @@ -389,10 +395,8 @@ Rename DIR/ to PKG-VERS/, and return the descriptor." (let ((pkgdescfile (expand-file-name (format "%s-pkg.el" name) srcdir))) (when (file-readable-p pkgdescfile) - (with-temp-buffer - (insert-file-contents pkgdescfile) - (let ((desc (read (current-buffer)))) - (plist-get (cdr desc) kprop))))) + (let ((desc (archive--form-from-file-contents pkgdescfile))) + (plist-get (cdr desc) kprop)))) (when (file-readable-p mainsrcfile) (with-temp-buffer (insert-file-contents mainsrcfile) @@ -437,9 +441,8 @@ Rename DIR/ to PKG-VERS/, and return the descriptor." (replace-regexp-in-string "&" "&" txt))) (defun archive--read-externals-list (&optional dir) - (with-temp-buffer - (insert-file-contents (expand-file-name "externals-list" dir)) - (read (current-buffer)))) + (archive--form-from-file-contents + (expand-file-name "externals-list" dir))) (defun archive--insert-repolinks (name srcdir _mainsrcfile url) (when url @@ -559,11 +562,8 @@ Rename DIR/ to PKG-VERS/, and return the descriptor." (defun batch-html-make-index () (let ((packages (make-hash-table :test #'equal)) (archive-contents - (with-temp-buffer - (insert-file-contents "archive-contents") - (goto-char (point-min)) - ;; Skip the first element which is a version number. - (cdr (read (current-buffer)))))) + ;; Skip the first element which is a version number. + (cdr (archive--form-from-file-contents "archive-contents")))) (dolist (subdir (directory-files "../../build/packages" nil)) (cond ((member subdir '("." ".." "elpa.rss" "index.html" "archive-contents")))