From 3831096cfbadd8b479e84855c17e8c629bf21083 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 9 Oct 2021 19:37:03 +0200 Subject: [PATCH] fix(lib): doom-package-depend{ing-on,encies} Doom doesn't use these two functions, but since they can be useful for debugging *and* straight provides impleemntations for them already, they're trivial to fix. --- core/core-packages.el | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/core/core-packages.el b/core/core-packages.el index 4398e4d06..c0b6f1a53 100644 --- a/core/core-packages.el +++ b/core/core-packages.el @@ -302,13 +302,18 @@ processed." nil-value) plist))) -(defun doom-package-dependencies (package &optional recursive _noerror) - "Return a list of dependencies for a package." - (let ((deps (nth 1 (gethash (symbol-name package) straight--build-cache)))) - (if recursive - (append deps (mapcan (lambda (dep) (doom-package-dependencies dep t t)) - (copy-sequence deps))) - (copy-sequence deps)))) +(defun doom-package-dependencies (package &optional recursive noerror) + "Return a list of dependencies for a package. + +If RECURSIVE is `tree', return a tree of dependencies. +If RECURSIVE is nil, only return PACKAGE's immediate dependencies. +If NOERROR, return nil in case of error." + (cl-check-type package symbol) + (let ((deps (straight-dependencies (symbol-name package)))) + (pcase recursive + (`tree deps) + (`t (flatten-list deps)) + (`nil (cl-remove-if #'listp deps))))) (defun doom-package-depending-on (package &optional noerror) "Return a list of packages that depend on PACKAGE. @@ -320,12 +325,7 @@ non-nil." (unless (or (doom-package-build-recipe package) noerror) (error "Couldn't find %s, is it installed?" package)) - (cl-loop for pkg in (hash-table-keys straight--build-cache) - for deps = (doom-package-dependencies pkg) - if (memq package deps) - collect pkg - and append (doom-package-depending-on pkg t))) - + (straight-dependents (symbol-name package))) ;;; Predicate functions (defun doom-package-built-in-p (package)