This commit is contained in:
2023-02-22 16:06:33 -05:00
parent e47e37fa29
commit 1507744069
2 changed files with 29 additions and 0 deletions

View File

@@ -14,6 +14,10 @@ let
# make flake inputs accessiable in NixOS
{ _module.args.inputs = inputs; }
{
_module.args = {
utils = import ./utils { inherit pkgs; };
};
imports = [
({ pkgs, ... }: {
nix.nixPath = [

25
utils/default.nix Normal file
View File

@@ -0,0 +1,25 @@
{ pkgs, ... }: {
renderMustache = name: template: data:
# Render handlebars `template` called `name` by converting `data` to JSON
pkgs.stdenv.mkDerivation {
name = "${name}";
# Disable phases which are not needed. In particular the unpackPhase will
# fail, if no src attribute is set
nativeBuildInpts = [ pkgs.mustache-go ];
# Pass Json as file to avoid escaping
passAsFile = [ "jsonData" ];
jsonData = builtins.toJSON data;
phases = [ "buildPhase" "installPhase" ];
buildPhase = ''
${pkgs.mustache-go}/bin/mustache $jsonDataPath ${template} > rendered_file
'';
installPhase = ''
cp rendered_file $out
'';
};
}