From 83594e09a96f989dd3b6ad67eb2aac3310e65ac4 Mon Sep 17 00:00:00 2001 From: Joakim Repomaa Date: Sat, 1 Mar 2025 13:14:58 +0200 Subject: [PATCH] add syntax renderer to hastebin --- flake.nix | 4 ++++ hosts/freun-dev/services.nix | 25 ++++++++++++++++++++++++- modules/services/hastebin.nix | 12 ------------ 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/flake.nix b/flake.nix index 7248d74..b96398a 100644 --- a/flake.nix +++ b/flake.nix @@ -64,6 +64,10 @@ url = "github:zhaofengli/colmena"; inputs.nixpkgs.follows = "nixpkgs"; }; + syntax-renderer = { + url = "sourcehut:~repomaa/syntax-renderer"; + flake = false; + }; }; outputs = { flake-parts, agenix, nixpkgs, self, colmena, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } ( diff --git a/hosts/freun-dev/services.nix b/hosts/freun-dev/services.nix index 2a48285..158995d 100644 --- a/hosts/freun-dev/services.nix +++ b/hosts/freun-dev/services.nix @@ -1,4 +1,4 @@ -{ pkgs, config, ... }: +{ pkgs, config, inputs, ... }: let immichDataDir = "/mnt/storage/immich"; syncthingDataDir = "/mnt/storage/syncthing"; @@ -45,6 +45,29 @@ in hastebin = { enable = true; subdomain = "bin"; + renderers = with pkgs; + let + hl = rustPlatform.buildRustPackage { + name = "syntax-renderer"; + src = inputs.syntax-renderer; + cargoHash = "sha256-+3rsXsZohapIZAQfDYCqcatj+qWmC2iD8raeECKtgzE="; + }; + in + { + hl = "${hl}/bin/syntax-renderer"; + sha = writeShellScript "sha-renderer" '' + echo "Content-Type: text/plain" + echo "---" + ${coreutils}/bin/sha256sum - | cut -d' ' -f1 + ''; + stl = writeShellScript "stl-renderer" '' + echo "Content-Type: model/stl" + echo "Content-Disposition: attachment; filename=$(basename "$1" .scad).stl" + echo "---" + ${openscad}/bin/openscad --export-format stl -o - - + ''; + }; + cleanup.enable = true; }; readeck = { diff --git a/modules/services/hastebin.nix b/modules/services/hastebin.nix index 333c64d..e03b0d2 100644 --- a/modules/services/hastebin.nix +++ b/modules/services/hastebin.nix @@ -37,18 +37,6 @@ in auth_tokens_file = secrets.hastebin-tokens.path; }; - users.users.hastebin = { - isSystemUser = true; - group = "hastebin"; - }; - - users.groups.hastebin = { }; - - systemd.services.hastebin.serviceConfig = { - DynamicUser = lib.mkForce false; - User = "hastebin"; - }; - services.webserver = { enable = lib.mkDefault true; vHosts.${fqdn} = {