branch: elpa-admin commit 5660f2567d23cbaea89e189c27af24892abd97f7 Author: Thien-Thi Nguyen <t...@gnu.org> Commit: Thien-Thi Nguyen <t...@gnu.org>
[admin] Add abstraction: archive--read-externals-list * admin/archive-contents.el (archive--read-externals-list): New func. (archive--insert-repolinks, archive-add/remove/update-externals): Use it. --- admin/archive-contents.el | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/admin/archive-contents.el b/admin/archive-contents.el index 953a00b..66ea520 100755 --- a/admin/archive-contents.el +++ b/admin/archive-contents.el @@ -436,17 +436,19 @@ Rename DIR/ to PKG-VERS/, and return the descriptor." (replace-regexp-in-string "<" "<" (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)))) + (defun archive--insert-repolinks (name srcdir _mainsrcfile url) (when url (insert (format "<dt>Home page</dt> <dd><a href=%S>%s</a></dd>\n" url (archive--quote url))) (when (string-match archive-default-url-re url) (setq url nil))) - (let* ((externals - (with-temp-buffer - (insert-file-contents - (expand-file-name "../../../elpa/externals-list" srcdir)) - (read (current-buffer)))) + (let* ((externals (archive--read-externals-list + (expand-file-name "../../../elpa" srcdir))) (external (eq :external (nth 1 (assoc name externals)))) (git-sv "http://git.savannah.gnu.org/") (urls (if external @@ -787,9 +789,7 @@ If WITH-CORE is non-nil, it means we manage :core packages as well." (defun archive-add/remove/update-externals () "Remove non-package directories and fetch external packages." - (let ((externals-list - (with-current-buffer (find-file-noselect "externals-list") - (read (buffer-string))))) + (let ((externals-list (archive--read-externals-list))) (let ((with-core (archive--sync-emacs-repo))) (archive--cleanup-packages externals-list with-core) (pcase-dolist ((and definition `(,name ,kind ,_url)) externals-list)