{ description = "TFC Website"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; cl-nix-lite.url = "github:hraban/cl-nix-lite"; rust-overlay.url = "github:oxalica/rust-overlay"; naersk.url = "github:nix-community/naersk"; blowfish = { url = "github:nunocoracao/blowfish?rev=b6744efbf2d76023084498552a916b49d5a764d8"; flake = false; }; }; outputs = inputs: with inputs; flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; src = ./.; naersk' = pkgs.callPackage naersk {}; # sbcl' = pkgs.sbcl.withPackages (ps: with ps; [ # hunchentoot # dexador # jzon # serapeum # deploy # spinneret # lass # cl-smtp # log4cl # cl_plus_ssl # fiveam # slite # clack # jingle # lack-middleware-static # lack-middleware-session # lack-middleware-mount # lack # lack-util # lack-component # woo # ningle # pkgs.openssl # pkgs.openssl.out # pkgs.openssl.dev # ]); nbi = with pkgs; [ gcc stdenv gnumake gdb pkg-config makeWrapper openssl openssl.out openssl.dev ]; bi = with pkgs; [ git hugo go nodejs tailwindcss_4 # sbcl' clippy rustc cargo rustfmt rust-analyzer just openssl openssl.out openssl.dev ]; blowfish = inputs.blowfish; nativeLibs = with pkgs; [ openssl openssl.out openssl.dev ]; site = pkgs.stdenv.mkDerivation rec { name = "site"; version = "2.0.0"; src = ./.; configurePhase = '' ls mkdir -p themes echo echo ls themes echo echo cp -r ${inputs.blowfish.out} themes/blowfish ls themes/blowfish ls ${inputs.blowfish} echo echo ''; buildPhase = '' tailwindcss -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit && hugo --gc --minify ${pkgs.hugo}/bin/hugo --minify ''; installPhase = '' ls -l cp -r public $out/ ls -l $out ''; buildInputs = bi; nativeBuildInputs = nbi; }; in { devShell = pkgs.mkShell { name = "tfc-api"; version = "0.0.1"; src = src; nativeBuildInputs = nbi; buildInputs = bi; nativeLibs = nativeLibs; }; packages.default = naersk'.buildPackage { pname = "tfcapi"; version = "0.0.1"; src = ./.; cargoBuildFlags = ""; doCheck = false; # cargoLock = { # lockFile = ./Cargo.lock; # }; nativeBuildInputs = nbi; buildInputs = bi; fixupPhase = '' ls -l mkdir -p $out/public ls -l $out cp -r ${site}/* $out/public/ ls -l $out ''; }; packages.site = site; defaultPackage = self.packages.default; } ); }