tfcconnection/flake.nix

100 lines
2.2 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";
};
outputs = inputs: with inputs;
flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = nixpkgs.legacyPackages.${system};
src = ./.;
sbcl' = pkgs.sbcl.withPackages (ps: with ps; [
hunchentoot
dexador
jzon
serapeum
deploy
spinneret
lass
cl-smtp
log4cl
cl_plus_ssl
fiveam
slite
clack
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; [
hugo
go
nodejs
sbcl'
clippy
rustc
cargo
rustfmt
rust-analyzer
just
openssl
openssl.out
openssl.dev
];
nativeLibs = with pkgs; [
openssl
openssl.out
openssl.dev
];
in
{
devShell = pkgs.mkShell {
name = "tfc-api";
version = "0.0.1";
src = src;
nativeBuildInputs = nbi;
buildInputs = bi;
nativeLibs = nativeLibs;
shellHook = ''
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.lib.makeLibraryPath nativeLibs}"
'';
};
packages.default = pkgs.rustPlatform.buildRustPackage {
pname = "api";
version = "0.0.1";
src = src;
cargoBuildFlags = "";
cargoLock = {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = nbi;
buildInputs = bi;
};
}
);
}