duralumin/flake.nix

50 lines
1.3 KiB
Nix

{
description = "A tool for deterministically generating SSH keys";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlays.url = "github:oxalica/rust-overlay";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, rust-overlays, ...}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {
inherit system;
overlays = [
(import rust-overlays)
self.overlays.default
];
};
rust = pkgs.rust-bin.stable.latest.default;
in {
devShells.default =
pkgs.mkShell {
buildInputs = with pkgs; [
pkg-config
git
rust
];
};
packages = rec {
inherit (pkgs) duralumin duralumin-keygen;
default = duralumin;
};
}) // {
overlays.default = final: prev: let
toolchain = prev.rust-bin.stable.latest.default;
rustPlatform = final.makeRustPlatform {
cargo = toolchain;
rustc = toolchain;
};
in {
duralumin = prev.callPackage ./pkgs/package.nix { inherit rustPlatform; };
duralumin-keygen = prev.callPackage ./pkgs/keygen.nix {
inherit (final) duralumin;
};
};
};
}