about summary refs log tree commit diff
path: root/nixos/modules/services/web-servers/keter/bundle.nix
blob: 32b08c3be206b6d87e0c9e267db2105d058bbb53 (plain) (blame)
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
/* This makes a keter bundle as described on the github page:
  https://github.com/snoyberg/keter#bundling-your-app-for-keter
*/
{ keterDomain
, keterExecutable
, gnutar
, writeTextFile
, lib
, stdenv
, ...
}:

let
  str.stanzas = [{
    # we just use nix as an absolute path so we're not bundling any binaries
    type = "webapp";
    /* Note that we're not actually putting the executable in the bundle,
      we already can use the nix store for copying, so we just
      symlink to the app. */
    exec = keterExecutable;
    host = keterDomain;
  }];
  configFile = writeTextFile {
    name = "keter.yml";
    text = (lib.generators.toYAML { } str);
  };

in
stdenv.mkDerivation {
  name = "keter-bundle";
  buildCommand = ''
    mkdir -p config
    cp ${configFile} config/keter.yaml

    echo 'create a gzipped tarball'
    mkdir -p $out
    tar -zcvf $out/bundle.tar.gz.keter ./.
  '';
  buildInputs = [ gnutar ];
}