Distro for Linux for WebAssembly
1_help:
2 @just --list
3
4eject pkg:
5 #!/usr/bin/env bash
6 set -e
7 if [ -d "overrides/{{ pkg }}" ]; then
8 echo "override for {{ pkg }} already exists"
9 exit 1
10 fi
11
12 src=$(nix build .#{{ pkg }}.src --print-out-paths)
13 mkdir -p overrides/{{ pkg }}
14 cp -r $src overrides/{{ pkg }}/src
15 chmod -R u+w overrides/{{ pkg }}/src
16 echo "override for {{ pkg }} created in overrides/{{ pkg }}"
17
18_nix cmd *args:
19 #!/usr/bin/env bash
20 if [ -d overrides ]; then
21 DISTRO_OVERRIDES=$PWD/overrides exec nix {{ cmd }} --impure --print-build-logs {{ args }}
22 else
23 exec nix {{ cmd }} --print-build-logs {{ args }}
24 fi
25
26build pkg:
27 #!/usr/bin/env bash
28 set -e
29 if [ ! -d "overrides/{{ pkg }}" ]; then
30 exec just _nix build .#{{ pkg }}
31 fi
32
33 mkdir -p overrides/{{ pkg }}/outputs
34
35 redirects=()
36 for package in $(ls overrides); do
37 if [[ $package =~ ^_ ]]; then
38 continue
39 fi
40 for output in $(ls overrides/$package/outputs); do
41 redirects+=(--redirect .#$package.$output $PWD/overrides/$package/outputs/$output)
42 done
43 done
44
45 cd overrides/{{ pkg }}
46 rm -rf outputs
47 mkdir outputs
48
49 exec nix develop .#{{ pkg }} --build --ignore-env "${redirects[@]}"
50
51run *args: (_nix "run" ".#runner" "--" args)
52
53serve *args: (_nix "run" ".#serve" "--" args)