diff --git a/global/utils.nix b/global/utils.nix index d89af09..a98b0a5 100644 --- a/global/utils.nix +++ b/global/utils.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib, pkgs, ... }: { setupSecrets = _config: @@ -96,4 +96,19 @@ } ]; }; + + # shamelessly stolen from soopyc's gensokyo + mkNginxFile = + { + filename ? "index.html", + content, + status ? 200, + }: + { + # gets the store path of the directory in which the file is contained + # we have to use writeTextDir because we don't want to expose the whole nix store to nginx + # and because you can't just return an absolute path to a file + alias = builtins.toString (pkgs.writeTextDir filename content) + "/"; + tryFiles = "${filename} =${builtins.toString status}"; + }; } diff --git a/systems/default.nix b/systems/default.nix index 92a0646..18937a3 100644 --- a/systems/default.nix +++ b/systems/default.nix @@ -4,7 +4,7 @@ ... }: let - _utils = import ../global/utils.nix { inherit lib; }; + mkUtils = import ../global/utils.nix; toSystem = name: @@ -24,7 +24,10 @@ let ]; specialArgs = inputs // { - inherit _utils; + _utils = mkUtils { + inherit lib; + pkgs = inputs.nixpkgs.legacyPackages.${system}; + }; }; }; in