{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; }; outputs = { self, nixpkgs, ... }: let system = "x86_64-linux"; pkgs = nixpkgs.outputs.legacyPackages.${system}; turtle = pkgs.callPackage ./nix/package.nix {}; tests = let test-turtle = turtle.overrideAttrs { cargoBuildType = "debug"; }; in pkgs.testers.runNixOSTest { imports = [./tests/basic.nix]; defaults = { services.turtle.package = test-turtle; environment.systemPackages = [ test-turtle ]; }; }; module = import ./nix/module.nix {extraPackages = {inherit turtle;};}; in { packages."${system}" = { inherit turtle; default = self.outputs.packages.${system}.turtle; }; nixosModules.default = module; checks."${system}".default = tests; devShells."${system}".default = self.packages.${system}.default.overrideAttrs (super: { nativeBuildInputs = super.nativeBuildInputs ++ [ # rust stuff pkgs.cargo pkgs.clippy pkgs.rustc pkgs.rustfmt pkgs.mold pkgs.cargo-edit pkgs.cargo-expand pkgs.cargo-flamegraph ]; RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}"; }); }; }