1{2 description = "NixOS configuration management";34 inputs = {5 nixpkgs.url = "github:nixos/nixpkgs/master";6 rust-overlay = {7 url = "github:oxalica/rust-overlay";8 inputs = {9 nixpkgs.follows = "nixpkgs";10 flake-utils.follows = "flake-utils";11 };12 };13 flake-utils.url = "github:numtide/flake-utils";14 crane = {15 url = "github:ipetkov/crane";16 inputs.nixpkgs.follows = "nixpkgs";17 };18 };19 outputs = {20 self,21 rust-overlay,22 flake-utils,23 nixpkgs,24 crane,25 }:26 with nixpkgs.lib;27 {28 lib = import ./lib {inherit flake-utils;};29 }30 // flake-utils.lib.eachDefaultSystem (system: let31 pkgs =32 import nixpkgs33 {34 inherit system;35 overlays = [(import rust-overlay)];36 };37 rust = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;38 craneLib = (crane.mkLib pkgs).overrideToolchain rust;39 in {40 packages = import ./pkgs {41 inherit (pkgs) callPackage;42 inherit craneLib;43 };44 devShell = craneLib.devShell {45 nativeBuildInputs = with pkgs; [46 alejandra47 lld48 cargo-edit49 cargo-udeps50 cargo-fuzz51 cargo-watch52 cargo-outdated5354 pkg-config55 openssl56 bacon57 ];58 };59 });60}