-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathflake.nix
90 lines (82 loc) · 2.62 KB
/
flake.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";
oxalica.url = "github:oxalica/rust-overlay";
oxalica.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, oxalica }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
system = "x86_64-linux";
overlay.default = [ oxalica.overlay ];
config.allowUnfree = true;
};
# To update the tailwind packages use node2nix
# node2nix -c tailwindcss.nix -16
nodeDependencies = (pkgs.callPackage ({ pkgs, system }:
let nodePackages = import ./tailwindcss.nix { inherit pkgs system; };
in nodePackages // {
shell = nodePackages.shell.override {
buildInputs = [
# pkgs.nodePackages.node-gyp-build
];
};
}) { }).nodeDependencies;
in {
packages.x86_64-linux = {
website = pkgs.stdenv.mkDerivation rec {
version = "0.0.1";
name = "kodama-theme-${version}";
src = pkgs.lib.sourceByRegex ./. [
"^content"
"^content/.*"
"^static"
"^static/.*"
"^templates"
"^templates/.*"
"^templates/macros"
"^templates/macros.*"
"^themes"
"^themes/.*"
"^styles"
"^styles/.*\.css"
"tailwind.config.js"
"config.toml"
];
buildInputs = [
pkgs.zola
pkgs.nodePackages.npm
pkgs.tree
# nodeDependencies
];
checkPhase = ''
zola check
'';
buildPhase = ''
# https://github.com/svanderburg/node2nix#using-the-nodejs-environment-in-other-nix-derivations
ln -s ${nodeDependencies}/lib/node_modules ./node_modules
export PATH="${nodeDependencies}/bin:$PATH"
tailwindcss -i styles/styles.css -o static/styles/style.css
'';
base-url = "https://adfaure.github.io/kodama-theme";
installPhase = ''
zola build -o $out --base-url ${base-url}
'';
};
};
# Use `nix develop` to activate the shell
devShell.x86_64-linux = pkgs.mkShell {
buildInputs = with pkgs; [
zola
nodeDependencies
# nodePackages.npm
nodePackages.node2nix
];
# This tells npx where to find the node lib.
# The css generation can be done with:
# npx tailwindcss -i styles/styles.css -o static/styles/styles.css
# NODE_PATH="${nodeDependencies}/lib/node_modules";
};
};
}