summaryrefslogtreecommitdiff
path: root/default.nix
blob: ad898a957519d4018b1c4c52879550eacf80f6b5 (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
let
  lock = builtins.fromJSON (builtins.readFile ./flake.lock);
  nixpkgs' = fetchTarball {
    url = lock.nodes.nixpkgs.locked.url or "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz";
    sha256 = lock.nodes.nixpkgs.locked.narHash;
  };
in
  {
    nixpkgs ?
      import nixpkgs' {
        config = {};
        overlays = [];
        inherit system;
      },
    system ? builtins.currentSystem,
  }: let
    pkgs = nixpkgs;
    inherit (nixpkgs) lib;

    toProcfile = procGroup:
      lib.concatLines (
        lib.mapAttrsToList (name: cmd: "${name}: ${cmd}") procGroup
      );
  in {
    mkProcfileRunner = {
      name,
      procGroup,
    }:
      pkgs.writeShellApplication {
        inherit name;
        runtimeInputs = [pkgs.overmind];
        text = ''
          set -x
          overmind start -f ${pkgs.writeText name (toProcfile procGroup)} --root "$PWD" "$@"
        '';
      };
  }