1{2 description = "Dotfiles manager";3 inputs = {4 nixpkgs.url = "github:nixos/nixpkgs";5 flake-utils.url = "github:numtide/flake-utils";6 naersk.url = "github:nix-community/naersk";7 rust-overlay.url = "github:oxalica/rust-overlay";8 pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";9 };10 outputs = { self, nixpkgs, flake-utils, rust-overlay, pre-commit-hooks, naersk }:11 flake-utils.lib.eachDefaultSystem (system:12 let13 pkgs = import nixpkgs14 {15 inherit system;16 overlays = [ rust-overlay.overlay ];17 };18 rust = ((pkgs.rustChannelOf { date = "2021-11-11"; channel = "nightly"; }).default.override {19 extensions = [ "rust-src" ];20 });21 naersk-lib = naersk.lib."${system}".override {22 rustc = rust;23 cargo = rust;24 };25 in26 rec {27 checks = {28 pre-commit-check = pre-commit-hooks.lib.${system}.run {29 src = ./.;30 hooks = {31 nixpkgs-fmt.enable = true;32 };33 };34 };35 defaultPackage = naersk-lib.buildPackage {36 pname = "dotman";37 root = ./.;38 buildInputs = with pkgs; [39 pkgs.sqlite40 ];41 };42 devShell = pkgs.mkShell {43 inherit (checks.pre-commit-check) shellHook;44 nativeBuildInputs = with pkgs;[45 pkgs.binutils46 pkgs.pkgconfig47 pkgs.clang48 pkgs.x1149 pkgs.alsaLib50 pkgs.libudev51 pkgs.sqlite52 rust53 cargo-edit54 go-jsonnet55 ];56 };57 }58 );59}