{ description = "static-site-generator for image-galleries"; inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; }; outputs = { self, nixpkgs, flake-utils }: { overlay = final: prev: { ctucx-gallery = ( let nimexif = final.nimPackages.buildNimPackage { 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; ''; }; nimjpg = final.nimPackages.buildNimPackage { name = "nimjpg"; src = final.fetchgit { url = "https://cgit.ctu.cx/nimjpg"; rev = "cf530668cf92d9d509744b54b93bd4101a5ae6c5"; sha256 = "03mbbs6wk67llh3ln871jwyvyl2qrv1m5rivlgmg2jlj8462m0sg"; }; buildInputs = [ nimexif ]; }; moustachu = final.fetchFromGitHub { owner = "fenekku"; repo = "moustachu"; rev = "0.14.0"; sha256 = "16ij1igddmily9g1kbkmhv6kvmnzyhdy10ifidf32frkraypkdm3"; }; in final.nimPackages.buildNimPackage { name = "ctucx.gallery"; src = self; buildInputs = [ final.libexif nimexif nimjpg moustachu ]; nimBinOnly = true; nimRelease = true; } ); }; } // (flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; in rec { packages.default = pkgs.ctucx-gallery; packages.ctucx-gallery = pkgs.ctucx-gallery; apps.default = { type = "app"; program = "${pkgs.ctucx-gallery}/bin/gallery"; }; } )); }