brewlog/flake.nix
Jon Seager 4e917cee75
refactor: move static assets out of templates/ into static/
Move CSS, JS, favicon files to static/ directory to separate
compiled-in assets from Askama templates. Update all include paths,
build.rs, flake.nix, and Tailwind @source directives.
2026-02-05 17:47:32 +00:00

92 lines
2.5 KiB
Nix

{
description = "brewlog";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs =
{
self,
nixpkgs,
rust-overlay,
flake-parts,
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
"aarch64-linux"
];
perSystem =
{ config, system, ... }:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { inherit system overlays; };
inherit (pkgs) lib rustPlatform;
rust = pkgs.rust-bin.stable.latest.default.override {
extensions = [
"rust-src"
"clippy"
"rust-analyzer"
"rustfmt"
];
};
cargoToml = lib.trivial.importTOML ./Cargo.toml;
version = cargoToml.package.version;
in
{
packages = {
default = self.packages.${system}.brewlog;
brewlog = rustPlatform.buildRustPackage {
pname = "brewlog";
inherit version;
src = lib.cleanSource ./.;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = [ pkgs.pkg-config pkgs.tailwindcss_4 ];
buildInputs = [ pkgs.openssl ];
preBuild = ''
tailwindcss -i static/css/input.css -o static/css/styles.css --minify
'';
meta = {
description = "Log your favourite roasters, roasts, brews and cafes!";
homepage = "https://github.com/jnsgruk/brewlog";
license = lib.licenses.asl20;
mainProgram = "brewlog";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ jnsgruk ];
};
};
};
devShells = {
default = pkgs.mkShell {
name = "brewlog";
NIX_CONFIG = "experimental-features = nix-command flakes";
RUST_SRC_PATH = "${rust}/lib/rustlib/src/rust/library";
buildInputs =
[ rust ]
++ (with pkgs; [
cargo-watch
nil
nixfmt
sqlite
sqlx-cli
tailwindcss_4
]);
};
};
};
};
}