summaryrefslogtreecommitdiff
path: root/lisp/use-package
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/use-package')
-rw-r--r--lisp/use-package/use-package.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el
index 6feb0d84a5c..0eaa1ac3371 100644
--- a/lisp/use-package/use-package.el
+++ b/lisp/use-package/use-package.el
@@ -434,9 +434,14 @@ manually updated package."
(concat ":ensure wants an optional package name "
"(an unquoted symbol name)")))))))
-(defun use-package-ensure-elpa (package)
- (when (not (package-installed-p package))
- (package-install package)))
+(defun use-package-ensure-elpa (package &optional no-refresh)
+ (if (package-installed-p package)
+ t
+ (if (or (assoc package package-archive-contents) no-refresh)
+ (package-install package)
+ (progn
+ (package-refresh-contents)
+ (use-package-ensure-elpa package t)))))
(defun use-package-handler/:ensure (name-symbol keyword ensure rest state)
(let ((body (use-package-process-keywords name-symbol rest state)))