2022-12-01 14:41:23 +00:00
|
|
|
{
|
2024-04-25 14:40:58 +00:00
|
|
|
description = "Tricot, a reverse proxy with consul integration";
|
2022-12-01 14:41:23 +00:00
|
|
|
|
2024-04-25 14:40:58 +00:00
|
|
|
# Nixpkgs 24.05 as of 2024-11-08, has rustc v1.77.2
|
|
|
|
inputs.nixpkgs.url =
|
|
|
|
"github:NixOS/nixpkgs/551ba0fa7653afb9d590db225c3bcbccf68931c0";
|
2022-12-01 14:41:23 +00:00
|
|
|
inputs.cargo2nix = {
|
2024-04-25 14:40:58 +00:00
|
|
|
# cargo2nix as of 2024-04-25
|
|
|
|
# NB: upgrading to a more recent commit of cargo2nix will not work (as of 2024-11-08),
|
|
|
|
# because the patch making openssl-sys cross-compilation work has been reverted.
|
|
|
|
# (patch: https://github.com/cargo2nix/cargo2nix/pull/237,
|
|
|
|
# revert: https://github.com/cargo2nix/cargo2nix/commit/cfd086deb565314f3a11b5bb25807a3ce17315d4)
|
|
|
|
url = "github:cargo2nix/cargo2nix/1efb03f2f794ad5eed17e807e858c4da001dbc3e";
|
2023-10-02 11:28:40 +00:00
|
|
|
|
2024-04-25 14:40:58 +00:00
|
|
|
# Rust overlay as of 2024-11-08
|
2023-10-02 11:28:40 +00:00
|
|
|
inputs.rust-overlay.url =
|
2024-04-25 14:40:58 +00:00
|
|
|
"github:oxalica/rust-overlay/d52f2a4c103a0acf09ded857b9e2519ae2360e59";
|
2023-10-02 11:28:40 +00:00
|
|
|
|
2022-12-01 14:41:23 +00:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
|
|
|
|
outputs = { self, nixpkgs, cargo2nix }:
|
|
|
|
let
|
2024-04-25 14:40:58 +00:00
|
|
|
targetHost = "x86_64-unknown-linux-musl";
|
2022-12-01 14:41:23 +00:00
|
|
|
pkgs = import nixpkgs {
|
|
|
|
system = "x86_64-linux";
|
2024-04-25 14:40:58 +00:00
|
|
|
crossSystem = {
|
|
|
|
config = targetHost;
|
|
|
|
isStatic = true;
|
|
|
|
};
|
2022-12-01 14:41:23 +00:00
|
|
|
overlays = [ cargo2nix.overlays.default ];
|
|
|
|
};
|
|
|
|
packageFun = import ./Cargo.nix;
|
2024-04-25 14:40:58 +00:00
|
|
|
rustVersion = "1.77.2";
|
2022-12-01 16:05:32 +00:00
|
|
|
|
|
|
|
compile = args: compileMode:
|
|
|
|
let
|
|
|
|
packageSet = pkgs.rustBuilder.makePackageSet ({
|
|
|
|
inherit packageFun rustVersion;
|
2024-04-25 14:40:58 +00:00
|
|
|
target = targetHost;
|
2022-12-01 16:05:32 +00:00
|
|
|
} // args);
|
|
|
|
in
|
|
|
|
packageSet.workspace.tricot {
|
|
|
|
inherit compileMode;
|
|
|
|
};
|
2022-12-01 14:41:23 +00:00
|
|
|
in
|
|
|
|
{
|
2022-12-01 16:05:32 +00:00
|
|
|
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;
|
2024-04-25 14:40:58 +00:00
|
|
|
|
|
|
|
docker = pkgs.dockerTools.buildImage {
|
|
|
|
name = "tricot";
|
|
|
|
config = {
|
|
|
|
contents = [ pkgs.cacert ];
|
|
|
|
Cmd = [ "${self.packages.x86_64-linux.default}/bin/tricot" ];
|
|
|
|
};
|
|
|
|
};
|
2022-12-01 14:41:23 +00:00
|
|
|
};
|
|
|
|
}
|