mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-13 01:20:28 -08:00
Merge pull request from peterhoeg/master
Check if an archive is valid when pinning GitHub-reference: https://github.com/jwiegley/use-package/issues/137
This commit is contained in:
commit
99642725c1
1 changed files with 51 additions and 35 deletions
|
|
@ -142,9 +142,25 @@ Return nil when the queue is empty."
|
|||
(defun use-package-pin-package (package archive)
|
||||
"Pin PACKAGE to ARCHIVE."
|
||||
(unless (boundp 'package-pinned-packages)
|
||||
(setq package-pinned-packages '()))
|
||||
(add-to-list 'package-pinned-packages (cons package archive))
|
||||
(package-initialize t))
|
||||
(setq package-pinned-packages ()))
|
||||
(let ((archive-symbol (if (symbolp archive) archive (intern archive)))
|
||||
(archive-name (if (stringp archive) archive (symbol-name archive))))
|
||||
(if (use-package--archive-exists-p archive-symbol)
|
||||
(add-to-list 'package-pinned-packages (cons package archive-name))
|
||||
(error (message "Archive '%s' requested for package '%s' is not available." archive-name package)))
|
||||
(package-initialize t)))
|
||||
|
||||
(defun use-package--archive-exists-p (archive)
|
||||
"Check if a given ARCHIVE is enabled.
|
||||
|
||||
ARCHIVE can be a string or a symbol or 'manual to indicate a manually updated package."
|
||||
(if (member archive '(manual "manual"))
|
||||
't
|
||||
(let ((valid nil))
|
||||
(dolist (pa package-archives)
|
||||
(when (member archive (list (car pa) (intern (car pa))))
|
||||
(setq valid 't)))
|
||||
valid)))
|
||||
|
||||
(defun use-package-ensure-elpa (package)
|
||||
(when (not (package-installed-p package))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue