diff --git a/scripts/find_store_path_gc_roots.sh b/scripts/find_store_path_gc_roots.sh new file mode 100755 index 00000000..10a523d5 --- /dev/null +++ b/scripts/find_store_path_gc_roots.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env sh + +function find_store_path_gc_roots { + store_path="$(realpath $1)" + while IFS=' ' read -r gcroot derivation; do + if [[ ! $gcroot =~ ^/proc ]]; then + if nix-store -qR "$derivation" 2>/dev/null | grep -q "$store_path"; then + echo $gcroot + fi + fi + done < <(nix-store --gc --print-roots | awk '{print $1, $3}') +} + + +find_store_path_gc_roots "$@"