about summary refs log tree commit diff stats
path: root/scripts/why-depends
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-05-29 01:29:25 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-05-29 01:29:25 +0200
commit80e55fc455bc7c6846a71aa487c4467995106242 (patch)
tree8b091954ec4c14cbade622999a227c4098265008 /scripts/why-depends
parenttreewide: Remove unneeded dependencies (diff)
downloadnixos-config-80e55fc455bc7c6846a71aa487c4467995106242.zip
scripts/why-depends: Support limiting the search to precises names
Diffstat (limited to '')
-rwxr-xr-xscripts/why-depends21
1 files changed, 17 insertions, 4 deletions
diff --git a/scripts/why-depends b/scripts/why-depends
index 61f40c5d..ae1ac6f7 100755
--- a/scripts/why-depends
+++ b/scripts/why-depends
@@ -11,12 +11,13 @@ main() {
         base=".#nixosConfigurations.$host.config.system.build.toplevel"
     fi
 
-    fd "[a-zA-Z0-9]{32}-$package-" /nix/store --type directory --threads 1 --exec nix why-depends "$base"
+    fd "[a-zA-Z0-9]{32}-$package" /nix/store --type directory --threads 1 --exec nix --option warn-dirty false why-depends "$base"
 }
 
 running=false
 host="$(hostname)"
 packages=""
+direct_packages=""
 
 while [ "$#" -ne 0 ]; do
     case "$1" in
@@ -27,6 +28,10 @@ while [ "$#" -ne 0 ]; do
         shift 1
         host="$1"
         ;;
+    "--direct")
+        shift 1
+        direct_packages="$direct_packages $1"
+        ;;
     *)
         # Treat everything else as a package to check
         packages="$packages $1"
@@ -36,8 +41,16 @@ while [ "$#" -ne 0 ]; do
     shift 1
 done
 
-for package in $packages; do
-    main "$running" "$host" "$package"
-done
+if [ -n "$packages" ]; then
+    for package in $packages; do
+        main "$running" "$host" "$package-"
+    done
+fi
+
+if [ -n "$direct_packages" ]; then
+    for package in $direct_packages; do
+        main "$running" "$host" "$package-[0-9]"
+    done
+fi
 
 # vim: ft=sh