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