{ description = "Nix Microscopy"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; }; outputs = { self, nixpkgs, flake-utils, pre-commit-hooks, ... } @ inputs: flake-utils.lib.eachSystem ["x86_64-linux"] (system: rec { pkgs = import nixpkgs { inherit system; config = {allowUnfree = true;}; }; devShells.default = self.pkgs.${system}.mkShell { name = "nix-microscopy"; buildInputs = with self.pkgs.${system}; [ alejandra deadnix git nil nixUnstable pre-commit reuse statix ]; shellHook = '' ${self.checks.${system}.pre-commit-check.shellHook} ''; }; checks = { pre-commit-check = pre-commit-hooks.lib.${system}.run { src = self.pkgs.${system}.lib.cleanSource ./.; hooks = { editorconfig-checker.enable = true; statix.enable = true; deadnix.enable = true; alejandra.enable = true; }; }; }; packages = { amlite = self.pkgs.${system}.callPackage ./pkgs/amlite inputs; default = self.packages.${system}.amlite; }; }); }