#! /usr/bin/env sh main() { use_running="$1" host="$2" package="$3" if [ "$use_running" = "true" ]; then base="/run/current-system" else 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" } running=false host="$(hostname)" packages="" while [ "$#" -ne 0 ]; do case "$1" in "--running") running=true ;; "--host") shift 1 host="$1" ;; *) # Treat everything else as a package to check packages="$packages $1" ;; esac shift 1 done for package in $packages; do main "$running" "$host" "$package" done # vim: ft=sh