diff --git a/hosts/crayon/git.nix b/hosts/crayon/git.nix index d020b9a..7fd4476 100644 --- a/hosts/crayon/git.nix +++ b/hosts/crayon/git.nix @@ -1,4 +1,4 @@ -{ config, ... }: +{ config, pkgs, ... }: let cfg = config.services.forgejo; srv = cfg.settings.server; @@ -12,6 +12,10 @@ in { locations."/".proxyPass = "http://localhost:${toString srv.HTTP_PORT}"; }; + users.users.${cfg.user}.packages = with pkgs; [ + mandoc + ttpre + ]; services.forgejo = { enable = true; database.type = "postgres"; @@ -31,6 +35,14 @@ in { DEFAULT_PUSH_CREATE_PRIVATE = false; ENABLE_PUSH_CREATE_USER = true; }; + "markup.mandoc" = { + ENABLED = true; + FILE_EXTENSIONS = ".1,.2,.3,.4,.5,.6,.7,.8,.9"; + RENDER_COMMAND = pkgs.writeShellScriptBin "mandoc-ttpre" '' + ${pkgs.mandoc}/bin/mandoc -O fragment -Tutf8 -Kutf-8 "$1" | ${pkgs.ttpre}/bin/ttpre + '' + "/bin/mandoc-ttpre"; + IS_INPUT_FILE = true; + }; }; }; } diff --git a/overlays/ttpre.nix b/overlays/ttpre.nix new file mode 100644 index 0000000..6702b53 --- /dev/null +++ b/overlays/ttpre.nix @@ -0,0 +1,29 @@ +{ unstable }: +final: prev: { + ttpre = prev.stdenv.mkDerivation { + pname = "ttpre"; + version = "1.0"; + + src = prev.fetchurl { + url = "https://git.causal.agency/src/plain/bin/ttpre.c?id=7d87749a623ef4f1274903f91ebaf90dcd1cc9b5"; + name = "ttpre.c"; + sha256 = "sha256-K0S12UBBvEdNHOF+O63gw0PCtYkxxWesxnpRg9iSDmk="; + }; + nativeBuildInputs = [ prev.gcc ]; + unpackPhase = ":"; # we don't need to unpack it's just a c file + buildPhase = "gcc -o ttpre $src"; + installPhase = '' + mkdir -p $out/bin + mv ttpre $out/bin + ''; + + + meta = { + description = "Wrap a file in
 tags";
+      license = "AGPLv3";
+      homepage = "https://git.causal.agency/src/";
+      mainProgram = "ttpre";
+      maintainers = [ "squibid" ];
+    };
+  };
+}