-
Notifications
You must be signed in to change notification settings - Fork 68
/
default.nix
51 lines (41 loc) · 1.29 KB
/
default.nix
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
let sources = import nix/sources.nix;
in
{ pkgs ? import sources.nixpkgs { }
}:
let
inherit (pkgs) lib stdenvNoCC;
edify = import sources.edify { inherit pkgs; };
nodeHelper = import ./nix/node { inherit pkgs; };
in
stdenvNoCC.mkDerivation {
pname = "webdev";
version = "0.13";
src =
lib.cleanSourceWith {
src = lib.cleanSource ./.;
filter = path: type:
!(type == "directory" && baseNameOf path == "build");
};
buildInputs =
[ edify.bin pkgs.zip ]
++ nodeHelper.buildInputs;
buildPhase = ''
# It's safe to run shell commands in the Nix sandbox.
edify build --unsafe-allow-commands
'';
installPhase = ''
mkdir -p "$out/$name/handouts" "$out/$name/slides"
cp -a LICENSE README.md start-scripts src "$out/$name"
# Copy PDF files into the correct locations:
find build -type f -name '*.handout.pdf' -exec mv '{}' "$out/$name/handouts" ';'
find build -type f -name '*.slides.pdf' -exec mv '{}' "$out/$name/slides" ';'
# Rename PDF files:
for file in $out/$name/{handouts,slides}/*.pdf; do
mv "$file" "$(sed -E 's/[.](handout|slides)[.]pdf/.pdf/' <<<"$file")"
done
# Install other files:
${nodeHelper.installPhase}
# Build archives:
( cd "$out" && zip -9 -y -r -q "$name.zip" "$name" )
'';
}