summaryrefslogtreecommitdiff
path: root/default.nix
blob: 98efd74464d6f74958c4f33da350d1c9d4c2fe4b (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
52
53
54
55
56
57
{

    pkgsArg ? import (fetchTarball {
        name = "nixpkgs-21-05";
        url = "https://github.com/NixOS/nixpkgs/archive/7e9b0dff974c89e070da1ad85713ff3c20b0ca97.tar.gz";
        sha256 = "1ckzhh24mgz6jd1xhfgx0i9mijk6xjqxwsshnvq789xsavrmsc36";
    }) {},

    config ? import ./config.nix,

}: rec {

    pkgs = pkgsArg;

    srv = pkgs.callPackage (import ./srv) {
        inherit config;
    };


    entrypoint = pkgs.writeScript "mediocre-blog-entrypoint" ''
        #!/bin/sh

        set -e

        mkdir -p ${config.runDir}
        mkdir -p ${config.dataDir}

        exec ${srv.bin}
    '';

    service = pkgs.writeText "mediocre-blog" ''
        [Unit]
        Description=mediocregopher mediocre blog
        Requires=network.target
        After=network.target

        [Service]
        Restart=always
        RestartSec=1s
        User=mediocregopher
        Group=mediocregopher
        RuntimeDirectory=mediocre-blog
        ExecStart=${entrypoint}

        [Install]
        WantedBy=multi-user.target
    '';

    install = pkgs.writeScript "mediocre-blog" ''
        set -e -x

        sudo cp ${service} /etc/systemd/system/mediocregopher-mediocre-blog.service
        sudo systemctl daemon-reload
        sudo systemctl enable mediocregopher-mediocre-blog.service
        sudo systemctl restart mediocregopher-mediocre-blog.service
    '';
}