blob: ae1ac6f70820d11801268e2220d7728014d29d78 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#! /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 --option warn-dirty false why-depends "$base"
}
running=false
host="$(hostname)"
packages=""
direct_packages=""
while [ "$#" -ne 0 ]; do
case "$1" in
"--running")
running=true
;;
"--host")
shift 1
host="$1"
;;
"--direct")
shift 1
direct_packages="$direct_packages $1"
;;
*)
# Treat everything else as a package to check
packages="$packages $1"
;;
esac
shift 1
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
|