nix: initial tooling

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5201e2b745fec2d5d6806693b5243d4e6a6a6964
This commit is contained in:
raf 2026-06-22 16:48:33 +03:00
commit 2ccd62ba5e
No known key found for this signature in database
GPG key ID: 29D95B64378DB4BF
5 changed files with 132 additions and 0 deletions

29
nix/package.nix Normal file
View file

@ -0,0 +1,29 @@
{
lib,
rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "beer";
version = "0.0.0";
src = let
fs = lib.fileset;
s = ../.;
in
fs.toSource {
root = s;
fileset = fs.unions [
(fs.fileFilter (file: builtins.any file.hasExt ["rs"]) (s + /src))
(s + /Cargo.lock)
(s + /Cargo.toml)
];
};
cargoLock.lockFile = "${finalAttrs.src}/Cargo.lock";
enableParallelBuilding = true;
meta = {
maintainers = with lib.maintainers; [NotAShelf];
mainProgram = "beer";
};
})

52
nix/shell.nix Normal file
View file

@ -0,0 +1,52 @@
{
mkShell,
rustc,
cargo,
rust-analyzer,
rustfmt,
clippy,
taplo,
cargo-deny,
pkg-config,
wayland,
wayland-protocols,
wayland-scanner,
libxkbcommon,
freetype,
fontconfig,
harfbuzz,
}:
mkShell {
name = "rust";
strictDeps = true;
nativeBuildInputs = [
cargo
rustc
clippy
rustfmt
rustc
cargo
# Tools
rustfmt
clippy
cargo
taplo
# LSP
rust-analyzer
cargo-deny
pkg-config
];
buildInputs = [
wayland
wayland-protocols
wayland-scanner
libxkbcommon
freetype
fontconfig
harfbuzz
];
}