From 9631a1c45b4de1f53fb900ac70a1cf8e53c0c145 Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Thu, 26 Mar 2026 18:17:01 +0100 Subject: [PATCH] simplify flake.nix: remove redundant scripts and claude-code, bump to node 22 --- flake.nix | 105 +++--------------------------------------------------- 1 file changed, 4 insertions(+), 101 deletions(-) diff --git a/flake.nix b/flake.nix index 737c90b..32e1b60 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "HdM Slides - Marp presentation builder with tools"; + description = "HdM Slides - Marp presentation builder"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; @@ -9,116 +9,19 @@ outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let - pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; - - - # QR code generator script - qr-gen = pkgs.writeShellScriptBin "qr" '' - if [ -z "$1" ]; then - echo "Usage: qr [output.png]" - echo "" - echo "Examples:" - echo " qr https://example.com" - echo " qr https://example.com my-qr.png" - echo " qr 'https://librete.ch/hdm/223015b/' slides-qr.png" - exit 1 - fi - - URL="$1" - OUTPUT="''${2:-qr-code.png}" - - ${pkgs.qrencode}/bin/qrencode -o "$OUTPUT" -s 10 -m 2 "$URL" - echo "Generated: $OUTPUT" - ''; - - # QR code for course slides - qr-slides = pkgs.writeShellScriptBin "qr-slides" '' - COURSE="''${1:-223015b}" - OUTPUT="''${2:-build/$COURSE/qr-$COURSE.png}" - - mkdir -p "$(dirname "$OUTPUT")" - ${pkgs.qrencode}/bin/qrencode -o "$OUTPUT" -s 10 -m 2 "https://librete.ch/hdm/$COURSE/" - echo "Generated QR for $COURSE: $OUTPUT" - ''; - - # Image optimizer script - optimize-img = pkgs.writeShellScriptBin "optimize-img" '' - if [ -z "$1" ]; then - echo "Usage: optimize-img [max-width]" - echo "" - echo "Resizes images to max width (default: 1920px)" - exit 1 - fi - - TARGET="$1" - MAX_WIDTH="''${2:-1920}" - - if [ -d "$TARGET" ]; then - for img in "$TARGET"/*.{png,jpg,jpeg,webp} 2>/dev/null; do - [ -f "$img" ] || continue - echo "Optimizing: $(basename "$img")" - ${pkgs.imagemagick}/bin/magick "$img" -resize "''${MAX_WIDTH}x>" -quality 85 "$img" - done - elif [ -f "$TARGET" ]; then - echo "Optimizing: $TARGET" - ${pkgs.imagemagick}/bin/magick "$TARGET" -resize "''${MAX_WIDTH}x>" -quality 85 "$TARGET" - else - echo "Error: $TARGET not found" - exit 1 - fi - echo "Done!" - ''; - + pkgs = import nixpkgs { inherit system; }; in { - # Development shell with all tools devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ - nodejs_20 + nodejs_22 nodePackages.npm - qrencode - imagemagick gnumake - claude-code ]; shellHook = '' - echo "HdM Slides Development Environment" - echo "" - echo "Available commands:" - echo " make dev-b - Start 223015b dev server (port 1312)" - echo " make dev-c - Start 223015c dev server (port 1313)" - echo " make build - Build all courses" - echo " qr - Generate QR code" - echo " qr-slides 223015b - Generate QR for course" - echo " optimize-img - Optimize images" - echo "" + echo "HdM Slides - run 'make' for available commands" ''; }; - - # Standalone apps - packages = { - qr = qr-gen; - qr-slides = qr-slides; - optimize-img = optimize-img; - default = qr-gen; - }; - - # Direct runnable apps - apps = { - qr = { - type = "app"; - program = "${qr-gen}/bin/qr"; - }; - qr-slides = { - type = "app"; - program = "${qr-slides}/bin/qr-slides"; - }; - optimize-img = { - type = "app"; - program = "${optimize-img}/bin/optimize-img"; - }; - default = self.apps.${system}.qr; - }; } ); }