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.nixpkgs.follows = "nixpkgs";9 };10 flake-utils = {url = "github:numtide/flake-utils";};11 };12 outputs = {13 self,14 rust-overlay,15 flake-utils,16 nixpkgs,17 }:18 with nixpkgs.lib;19 {20 lib = import ./lib {inherit flake-utils;};21 }22 // flake-utils.lib.eachDefaultSystem (system: let23 pkgs =24 import nixpkgs25 {26 inherit system;27 overlays = [(import rust-overlay)];28 };29 llvmPkgs = pkgs.buildPackages.llvmPackages_11;30 rust =31 (pkgs.rustChannelOf {32 date = "2024-01-01";33 channel = "nightly";34 })35 .default36 .override {extensions = ["rust-src" "rust-analyzer"];};37 in {38 packages = (import ./pkgs) pkgs pkgs;39 devShell = (pkgs.mkShell.override {stdenv = llvmPkgs.stdenv;}) {40 nativeBuildInputs = with pkgs; [41 rust42 lld43 cargo-edit44 cargo-udeps45 cargo-fuzz46 cargo-watch4748 pkg-config49 openssl50 bacon51 ];52 };53 });54}