branch: master
commit 84e1ab8ca7f227174362992f67895f21d74c4070
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
counsel.el (counsel-package): Refresh contents automatically
In case any of "archive-contents" files is older than 4 hours, call
`package-refresh-contents'.
---
counsel.el | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/counsel.el b/counsel.el
index 1476f38..933dd33 100644
--- a/counsel.el
+++ b/counsel.el
@@ -3825,6 +3825,8 @@ Position of selected mark outside accessible part of
buffer")))
(defvar package--initialized)
(defvar package-alist)
(defvar package-archive-contents)
+(defvar package-archives)
+(defvar package-user-dir)
(declare-function package-installed-p "package")
(declare-function package-delete "package")
(declare-function package-desc-extras "package")
@@ -3836,8 +3838,16 @@ Position of selected mark outside accessible part of
buffer")))
"Return completion alist for `counsel-package'."
(unless package--initialized
(package-initialize t))
- (unless package-archive-contents
- (package-refresh-contents))
+ (if (or (not package-archive-contents)
+ (cl-find-if (lambda (package-archive)
+ (let ((fname
+ (format
+ "%s/archives/%s/archive-contents"
+ package-user-dir (car package-archive))))
+ (or (not (file-exists-p fname))
+ (counsel-file-stale-p fname (* 4 60 60)))))
+ package-archives))
+ (package-refresh-contents))
(sort (mapcar (lambda (entry)
(cons (let ((pkg (car entry)))
(concat (if (package-installed-p pkg) "-" "+")