branch: master commit 84e1ab8ca7f227174362992f67895f21d74c4070 Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
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) "-" "+")