aboutsummaryrefslogtreecommitdiff
path: root/site.nix
blob: 06876b7fd7b7b9ced5da61dcc2c560d6eb8e54f2 (plain)
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
{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }:
with pkgs;

let
  srcNoTarget = dir:
    builtins.filterSource
    (path: type: type != "directory" || builtins.baseNameOf path != "target")
    dir;

  naersk = pkgs.callPackage sources.naersk { };
  dhallpkgs = import sources.easy-dhall-nix { inherit pkgs; };
  src = srcNoTarget ./.;

  xesite = naersk.buildPackage {
    inherit src;
    buildInputs = [ pkg-config openssl git ];
    remapPathPrefix = true;
  };

  config = stdenv.mkDerivation {
    pname = "xesite-config";
    version = "HEAD";
    buildInputs = [ dhallpkgs.dhall-simple ];

    phases = "installPhase";

    installPhase = ''
      cd ${src}
      dhall resolve < ${src}/config.dhall >> $out
    '';
  };

in pkgs.stdenv.mkDerivation {
  inherit (xesite) name;
  inherit src;
  phases = "installPhase";

  installPhase = ''
    mkdir -p $out $out/bin

    cp -rf ${config} $out/config.dhall
    cp -rf $src/blog $out/blog
    cp -rf $src/css $out/css
    cp -rf $src/gallery $out/gallery
    cp -rf $src/signalboost.dhall $out/signalboost.dhall
    cp -rf $src/static $out/static
    cp -rf $src/talks $out/talks

    cp -rf ${xesite}/bin/xesite $out/bin/xesite
  '';
}