mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-05 03:39:38 +00:00
Reduce some code duplication
This commit is contained in:
parent
ac906479a7
commit
1e560c5140
2 changed files with 26 additions and 35 deletions
26
up-core.el
26
up-core.el
|
@ -273,6 +273,16 @@ Must be set before loading use-package."
|
||||||
"Report MSG as an error, so the user knows it came from this package."
|
"Report MSG as an error, so the user knows it came from this package."
|
||||||
(error "use-package: %s" msg))
|
(error "use-package: %s" msg))
|
||||||
|
|
||||||
|
(defun use-package-hush (f body)
|
||||||
|
(condition-case-unless-debug err
|
||||||
|
(macroexp-progn body)
|
||||||
|
(error
|
||||||
|
(if (stringp f)
|
||||||
|
(ignore (display-warning 'use-package
|
||||||
|
(format f (error-message-string err))
|
||||||
|
:error))
|
||||||
|
(funcall f err)))))
|
||||||
|
|
||||||
(defsubst use-package-concat (&rest elems)
|
(defsubst use-package-concat (&rest elems)
|
||||||
"Delete all empty lists from ELEMS (nil or (list nil)), and append them."
|
"Delete all empty lists from ELEMS (nil or (list nil)), and append them."
|
||||||
(apply #'append (delete nil (delete (list nil) elems))))
|
(apply #'append (delete nil (delete (list nil) elems))))
|
||||||
|
@ -1297,11 +1307,6 @@ no keyword implies `:all'."
|
||||||
;;; The main macro
|
;;; The main macro
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(defsubst use-package-hush (context body)
|
|
||||||
`((condition-case-unless-debug err
|
|
||||||
,(macroexp-progn body)
|
|
||||||
(error (funcall ,context err)))))
|
|
||||||
|
|
||||||
(defun use-package-core (name args)
|
(defun use-package-core (name args)
|
||||||
(let* ((context (gensym "use-package--warning"))
|
(let* ((context (gensym "use-package--warning"))
|
||||||
(args* (use-package-normalize-keywords name args))
|
(args* (use-package-normalize-keywords name args))
|
||||||
|
@ -1404,14 +1409,9 @@ this file. Usage:
|
||||||
(macroexp-progn
|
(macroexp-progn
|
||||||
(if (eq use-package-verbose 'errors)
|
(if (eq use-package-verbose 'errors)
|
||||||
(use-package-core name args)
|
(use-package-core name args)
|
||||||
(condition-case-unless-debug err
|
(use-package-hush
|
||||||
(use-package-core name args)
|
(format "Failed to parse package %s: %%s" name)
|
||||||
(error
|
'((use-package-core name args)))))))
|
||||||
(ignore
|
|
||||||
(display-warning
|
|
||||||
'use-package
|
|
||||||
(format "Failed to parse package %s: %s"
|
|
||||||
name (error-message-string err)) :error))))))))
|
|
||||||
|
|
||||||
(put 'use-package 'lisp-indent-function 'defun)
|
(put 'use-package 'lisp-indent-function 'defun)
|
||||||
|
|
||||||
|
|
35
up-ensure.el
35
up-ensure.el
|
@ -143,31 +143,22 @@ manually updated package."
|
||||||
"(an unquoted symbol name)")))))))
|
"(an unquoted symbol name)")))))))
|
||||||
|
|
||||||
(defun use-package-ensure-elpa (name ensure state &optional no-refresh)
|
(defun use-package-ensure-elpa (name ensure state &optional no-refresh)
|
||||||
(let ((package
|
(let ((package (or (and (eq ensure t) (use-package-as-symbol name))
|
||||||
(or (and (eq ensure t) (use-package-as-symbol name))
|
ensure)))
|
||||||
ensure)))
|
|
||||||
(when package
|
(when package
|
||||||
(require 'package)
|
(require 'package)
|
||||||
(unless (package-installed-p package)
|
(unless (package-installed-p package)
|
||||||
(condition-case-unless-debug err
|
(use-package-hush
|
||||||
(progn
|
(format "Failed to install %s: %%s" name)
|
||||||
(when (assoc package (bound-and-true-p
|
'((when (assoc package (bound-and-true-p package-pinned-packages))
|
||||||
package-pinned-packages))
|
(package-read-all-archive-contents))
|
||||||
(package-read-all-archive-contents))
|
(if (assoc package package-archive-contents)
|
||||||
(if (assoc package package-archive-contents)
|
(package-install package)
|
||||||
(package-install package)
|
(package-refresh-contents)
|
||||||
(package-refresh-contents)
|
(when (assoc package (bound-and-true-p package-pinned-packages))
|
||||||
(when (assoc package (bound-and-true-p
|
(package-read-all-archive-contents))
|
||||||
package-pinned-packages))
|
(package-install package))
|
||||||
(package-read-all-archive-contents))
|
t))))))
|
||||||
(package-install package))
|
|
||||||
t)
|
|
||||||
(error
|
|
||||||
(ignore
|
|
||||||
(display-warning 'use-package
|
|
||||||
(format "Failed to install %s: %s"
|
|
||||||
name (error-message-string err))
|
|
||||||
:error))))))))
|
|
||||||
|
|
||||||
(defun use-package-handler/:ensure (name keyword ensure rest state)
|
(defun use-package-handler/:ensure (name keyword ensure rest state)
|
||||||
(let* ((body (use-package-process-keywords name rest state)))
|
(let* ((body (use-package-process-keywords name rest state)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue