{ description = "static-site-generator for image-galleries"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; outputs = inputs: let forAllSystems = function: inputs.nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ] (system: function (import inputs.nixpkgs { system = system; overlays = [ inputs.self.overlays.default ]; })); in { packages = forAllSystems (pkgs: { default = pkgs.ctucx-gallery; ctucx-gallery = pkgs.ctucx-gallery; }); apps = forAllSystems (pkgs: { default.type = "app"; default.program = "${pkgs.ctucx-gallery}/bin/gallery"; }); overlays.default = final: prev: { ctucx-gallery = let nimexif = final.stdenv.mkDerivation { name = "nimexif"; src = final.fetchgit { url = "https://cgit.ctu.cx/nimexif"; rev = "c01ab3532975370c3b35b1056f52d02c7df616e0"; sha256 = "0h3pzpm1h3gmijmfak994y98xr2my7wv31xh3b2wv1p4w8lsv3s1"; }; libexif = final.libexif; patchPhase = '' substituteAllInPlace nimexif/libexif_prewrapped.nim cp nimexif/libexif_prewrapped.nim nimexif/libexif.nim; ''; installPhase = '' mkdir -p $out cp -r nimexif $out ''; }; nimjpg = final.fetchgit { url = "https://cgit.ctu.cx/nimjpg"; rev = "cf530668cf92d9d509744b54b93bd4101a5ae6c5"; sha256 = "03mbbs6wk67llh3ln871jwyvyl2qrv1m5rivlgmg2jlj8462m0sg"; }; moustachu = final.fetchFromGitHub { owner = "fenekku"; repo = "moustachu"; rev = "0.14.0"; sha256 = "16ij1igddmily9g1kbkmhv6kvmnzyhdy10ifidf32frkraypkdm3"; }; in final.buildNimPackage { name = "ctucx.gallery"; src = inputs.self; buildInputs = [ final.libexif ]; nimRelease = true; nimFlags = [ "--path:${nimexif}" "--path:${nimjpg}" "--path:${moustachu}/src" ]; }; }; }; }