From 8e6e2e35bcb0fdccd036bf9a7bd68d77e3d5c1f6 Mon Sep 17 00:00:00 2001 From: Shinichi Sakata Date: Tue, 15 Apr 2025 06:59:27 -0700 Subject: [PATCH] Revised tools/install-packages.el (#469) - The function exercism//install-required-packages now perform installation only if at least one of thte required applications has not be installed. --- tools/install-packages.el | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tools/install-packages.el b/tools/install-packages.el index 8f14e5d8..a27dd593 100644 --- a/tools/install-packages.el +++ b/tools/install-packages.el @@ -1,14 +1,15 @@ +(require 'cl-extra) (defun exercism//install-required-packages () (require 'package) (package-initialize) - (unless package-archive-contents - (add-to-list - 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") - t) - (add-to-list - 'package-archives '("melpa" . "https://melpa.org/packages/") - t) - (package-refresh-contents)) - (dolist (pkg '(mustache ht string-inflection)) - (unless (package-installed-p pkg) - (package-install pkg)))) + (let ((required-packages '(mustache ht string-inflection))) + (when (not (cl-every #'package-installed-p required-packages)) + (add-to-list + 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") + t) + (add-to-list + 'package-archives '("melpa" . "https://melpa.org/packages/") + t) + (package-refresh-contents) + (dolist (pkg required-packages) + (package-install pkg)))))