From: Thomas Frössman Date: Fri, 8 May 2015 10:19:35 +0000 (+0200) Subject: Refresh package.el archives if package is missing X-Git-Tag: emacs-29.0.90~1306^2~15^2~338^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6f0586ef52;p=emacs.git Refresh package.el archives if package is missing --- 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)))