spond/flake.nix
Jonas Rabenstein 781e25470b initial git dump
2026-02-18 11:36:10 +01:00

59 lines
1.5 KiB
Nix

{
outputs = { nixpkgs, ... }: let
spond = { rustPlatform, rustfmt, clippy, pkg-config, openssl, ... }: rustPlatform.buildRustPackage {
pname = "spond";
version = "0.0.0";
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = [
pkg-config
];
propagatedBuildInputs = [
openssl.dev
];
};
allpkgs = system: pkgs: pkgs.extend (_: _: nixpkgs.lib.attrsets.filterAttrs (name: _: name != "default") (packages system pkgs));
packages = system: pkgs': let
pkgs = allpkgs system pkgs';
in {
default = pkgs.spond;
spond = pkgs.callPackage spond {};
};
devShells = system: pkgs': let
pkgs = allpkgs system pkgs';
in builtins.mapAttrs (devShell pkgs) (packages system pkgs');
devShell = pkgs: name: pkg: pkgs.mkShell {
buildInputs = with pkgs; [
cargo
cargo-machete
cargo-workspaces
cargo-unused-features
cargo-udeps
cargo-audit
cargo-diet
cargo-duplicates
cargo-flamegraph
clippy
(python3.withPackages (py: [ py.pyyaml ]))
rustc
rustfmt
] ++ pkg.buildInputs;
nativeBuildInputs = pkg.nativeBuildInputs;
shellHook = ''
printf 'Dev shell for %s ready!\n' '${pkg.name}'
'';
};
in {
packages = builtins.mapAttrs packages nixpkgs.legacyPackages;
devShells = builtins.mapAttrs devShells nixpkgs.legacyPackages;
};
}