{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; systems.url = "github:nix-systems/default"; treefmt-nix.url = "github:numtide/treefmt-nix"; flake-compat = { url = "github:NixOS/flake-compat"; flake = false; }; }; outputs = { nixpkgs, ... }@inputs: with builtins; with nixpkgs.lib; let doubles = import inputs.systems; forAllSystems = genAttrs doubles; pkgs_gen = { ... }@args: import nixpkgs args; dmm_gen = { pkgs, tools ? [ ], specialArgs ? { }, }: pkgs.rustPlatform.buildRustPackage ( let src = cleanSource ./.; in final: { pname = "dmm"; version = "0.0.9"; inherit src; cargoLock.lockFile = src + "/Cargo.lock"; nativeBuildInputs = tools; buildInputs = with pkgs; [ sqlite lrzip ]; } // specialArgs ); in { packages = forAllSystems ( system: let pkgs = pkgs_gen { inherit system; }; dmm = dmm_gen { inherit pkgs; }; in { inherit dmm; default = dmm; } ); formatter = forAllSystems ( system: let pkgs = pkgs_gen { inherit system; }; in inputs.treefmt-nix.lib.mkWrapper pkgs { programs.nixfmt.enable = true; } ); }; }