summaryrefslogtreecommitdiff
path: root/default.nix
blob: 19de15d241c8a964561fb871265058578e6a74f1 (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
{
    pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/cd63096d6d887d689543a0b97743d28995bc9bc3.tar.gz") {},
    system ? builtins.currentSystem,
}:

    let
        jekyll_env = pkgs.bundlerEnv {
            name = "jekyll_env";
            ruby = pkgs.ruby;
            gemdir = ./.;
        };
    in
        {
            build = derivation {
                inherit jekyll_env system;
                name = "mediocre-blog";
                builder = "${pkgs.bash}/bin/bash";
                args = [ ./build.sh ];

                src = ./src;
                stdenv = pkgs.stdenv;
            };

            serve = pkgs.stdenv.mkDerivation {
                name = "mediocre-blog-shell";

                # glibcLocales is required so to fill in LC_ALL and other locale
                # related environment vars. Without those jekyll's scss compiler
                # fails.
                #
                # TODO probably get rid of the scss compiler.
                buildInputs = [ jekyll_env pkgs.glibcLocales ];

                shellHook = ''
                    exec ${jekyll_env}/bin/jekyll serve -s ./src -d ./_site -w -I -D -H 0.0.0.0
                '';
            };

            env = jekyll_env;
        }