]> git.eshelyaron.com Git - emacs.git/commitdiff
Refresh package.el archives if package is missing
authorThomas Frössman <thomasf@jossystem.se>
Fri, 8 May 2015 10:19:35 +0000 (12:19 +0200)
committerThomas Frössman <thomasf@jossystem.se>
Fri, 8 May 2015 10:19:35 +0000 (12:19 +0200)
lisp/use-package/use-package.el

index 6feb0d84a5ca4492f2515f6085dbf02bcfed9150..0eaa1ac337110bc8568f93bc9e9101bfb17b60c1 100644 (file)
@@ -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)))