-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.envrc
More file actions
69 lines (54 loc) · 2.33 KB
/
Copy path.envrc
File metadata and controls
69 lines (54 loc) · 2.33 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
export TOP_HEAD="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
mkdir -p "$TOP_HEAD/.direnv"
export DISPLAY=:1
nvidia_version_file=/proc/driver/nvidia/version
nvidia_cache_file="$TOP_HEAD/.direnv/nixgl-nvidia-version"
nvidia_hash_file="$TOP_HEAD/.direnv/nixgl-nvidia-hash"
if [[ -r "$nvidia_version_file" ]]; then
host_nvidia_version="$(
sed -nE 's/^NVRM version: NVIDIA UNIX Open Kernel Module for x86_64[[:space:]]+([0-9.]+).*/\1/p' "$nvidia_version_file"
)"
if [[ -z "$host_nvidia_version" ]]; then
host_nvidia_version="$(
sed -nE 's/^NVRM version: .*Module.*[[:space:]]([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' "$nvidia_version_file"
)"
fi
if [[ -n "$host_nvidia_version" ]]; then
export NIXGL_NVIDIA_VERSION="$host_nvidia_version"
cached_version=""
cached_hash=""
[[ -f "$nvidia_cache_file" ]] && cached_version="$(<"$nvidia_cache_file")"
[[ -f "$nvidia_hash_file" ]] && cached_hash="$(<"$nvidia_hash_file")"
if [[ "$cached_version" != "$host_nvidia_version" || -z "$cached_hash" ]]; then
url="https://download.nvidia.com/XFree86/Linux-x86_64/${host_nvidia_version}/NVIDIA-Linux-x86_64-${host_nvidia_version}.run"
if command -v jq >/dev/null 2>&1; then
hash="$(
nix store prefetch-file --json --hash-type sha256 "$url" 2>&1 | jq -r '.hash // empty'
)"
else
hash="$(
nix store prefetch-file --json --hash-type sha256 "$url" 2>&1 \
| sed -nE 's/.*"hash"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/p'
)"
fi
if [[ -n "$hash" ]]; then
printf '%s\n' "$host_nvidia_version" > "$nvidia_cache_file"
printf '%s\n' "$hash" > "$nvidia_hash_file"
export NIXGL_NVIDIA_HASH="$hash"
elif [[ -n "$cached_hash" ]]; then
export NIXGL_NVIDIA_HASH="$cached_hash"
else
echo "Failed to compute NIXGL_NVIDIA_HASH for $url" >&2
fi
else
export NIXGL_NVIDIA_HASH="$cached_hash"
fi
fi
fi
# export VK_LOADER_LAYERS_DISABLE='~implicit~'
use flake --no-write-lock-file --impure --option warn-dirty false
export PATH=$PATH:$PWD/target/debug:$PWD/target/release
export_alias _b "cd $TOP_HEAD && make build; cd -"
export_alias _c "cd $TOP_HEAD && make compile; cd -"
export_alias _r "cd $TOP_HEAD && make run; cd -"
export_alias _t "cd $TOP_HEAD && make test; cd -"