mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-05 03:39:38 +00:00
Merge pull request from peterhoeg/master
Support for pinning package to archive GitHub-reference: https://github.com/jwiegley/use-package/issues/136
This commit is contained in:
commit
18f04bfb99
1 changed files with 14 additions and 1 deletions
|
@ -139,6 +139,13 @@ Return nil when the queue is empty."
|
||||||
(cancel-timer use-package-idle-timer)
|
(cancel-timer use-package-idle-timer)
|
||||||
(setq use-package-idle-timer nil))))
|
(setq use-package-idle-timer nil))))
|
||||||
|
|
||||||
|
(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))
|
||||||
|
|
||||||
(defun use-package-ensure-elpa (package)
|
(defun use-package-ensure-elpa (package)
|
||||||
(when (not (package-installed-p package))
|
(when (not (package-installed-p package))
|
||||||
(package-install package)))
|
(package-install package)))
|
||||||
|
@ -162,6 +169,7 @@ Return nil when the queue is empty."
|
||||||
:interpreter
|
:interpreter
|
||||||
:load-path
|
:load-path
|
||||||
:mode
|
:mode
|
||||||
|
:pin
|
||||||
:pre-init
|
:pre-init
|
||||||
:pre-load
|
:pre-load
|
||||||
:requires
|
:requires
|
||||||
|
@ -270,7 +278,8 @@ For full documentation. please see commentary.
|
||||||
priority (lower priorities run first). Default priority
|
priority (lower priorities run first). Default priority
|
||||||
is 5; forms with the same priority are run in the order in
|
is 5; forms with the same priority are run in the order in
|
||||||
which they are evaluated.
|
which they are evaluated.
|
||||||
:ensure loads package using package.el if necessary."
|
:ensure loads package using package.el if necessary.
|
||||||
|
:pin pin package to archive."
|
||||||
(use-package-validate-keywords args) ; error if any bad keyword, ignore result
|
(use-package-validate-keywords args) ; error if any bad keyword, ignore result
|
||||||
(let* ((commands (use-package-plist-get args :commands t t))
|
(let* ((commands (use-package-plist-get args :commands t t))
|
||||||
(pre-init-body (use-package-plist-get args :pre-init))
|
(pre-init-body (use-package-plist-get args :pre-init))
|
||||||
|
@ -291,6 +300,7 @@ For full documentation. please see commentary.
|
||||||
(if (stringp interpreter) (cons interpreter name) interpreter))
|
(if (stringp interpreter) (cons interpreter name) interpreter))
|
||||||
(predicate (use-package-plist-get args :if))
|
(predicate (use-package-plist-get args :if))
|
||||||
(pkg-load-path (use-package-plist-get args :load-path t t))
|
(pkg-load-path (use-package-plist-get args :load-path t t))
|
||||||
|
(archive-name (use-package-plist-get args :pin))
|
||||||
(defines-eval (if (null defines)
|
(defines-eval (if (null defines)
|
||||||
nil
|
nil
|
||||||
(if (listp defines)
|
(if (listp defines)
|
||||||
|
@ -309,6 +319,9 @@ For full documentation. please see commentary.
|
||||||
;; force this immediately -- one off cost
|
;; force this immediately -- one off cost
|
||||||
(unless (use-package-plist-get args :disabled)
|
(unless (use-package-plist-get args :disabled)
|
||||||
|
|
||||||
|
(when archive-name
|
||||||
|
(use-package-pin-package name archive-name))
|
||||||
|
|
||||||
(let* ((ensure (use-package-plist-get args :ensure))
|
(let* ((ensure (use-package-plist-get args :ensure))
|
||||||
(package-name
|
(package-name
|
||||||
(or (and (eq ensure t)
|
(or (and (eq ensure t)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue