tfcconnection/flake.nix
2025-05-19 13:00:41 -05:00

158 lines
3.9 KiB
Nix

{
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}/* themes/blowfish/
ls themes/blowfish
echo
echo
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;
}
);
}