{ description = "Tricot, a reverse proxy with consul integration"; # Nixpkgs 23.11 as of 2024-02-07, has rustc v1.73 inputs.nixpkgs.url = "github:NixOS/nixpkgs/9f2ee8c91ac42da3ae6c6a1d21555f283458247e"; inputs.cargo2nix = { # cargo2nix as of 2024-04-25 url = "github:cargo2nix/cargo2nix/1efb03f2f794ad5eed17e807e858c4da001dbc3e"; # Rust overlay as of 2024-02-07 inputs.rust-overlay.url = "github:oxalica/rust-overlay/7a94fe7690d2bdfe1aab475382a505e14dc114a6"; inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, cargo2nix }: let targetHost = "x86_64-unknown-linux-musl"; pkgs = import nixpkgs { system = "x86_64-linux"; crossSystem = { config = targetHost; isStatic = true; }; overlays = [ cargo2nix.overlays.default ]; }; packageFun = import ./Cargo.nix; rustVersion = "1.68.0"; compile = args: compileMode: let packageSet = pkgs.rustBuilder.makePackageSet ({ inherit packageFun rustVersion; target = targetHost; } // args); in packageSet.workspace.tricot { inherit compileMode; }; in { test.x86_64-linux.tricot = compile { release = false; } "test"; debug.x86_64-linux.tricot = compile { release = false; } "build"; packages.x86_64-linux.tricot = compile { release = true; } "build"; packages.x86_64-linux.default = self.packages.x86_64-linux.tricot; }; }