bankserver_rust/flake.nix
2025-03-01 18:50:14 +01:00

87 lines
2.0 KiB
Nix

{
description = "A very basic flake";
inputs = {
nixpkgs.url = "flake:nixpkgs";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
rust-overlay,
}:
let
forAllSystems =
function:
nixpkgs.lib.genAttrs
[
"x86_64-linux"
"aarch64-linux"
]
(
system:
function (
import nixpkgs {
inherit system;
overlays = [
(import rust-overlay)
(_: final: overlay final)
];
}
)
);
overlay =
pkgs:
let
rustVersion = pkgs.pkgsBuildHost.rust-bin.stable.latest.minimal;
rustPlatform = pkgs.makeRustPlatform {
cargo = rustVersion;
rustc = rustVersion;
};
bankserver = pkgs.callPackage ./package.nix {
inherit rustPlatform;
rev = self.shortRev or "dirty";
};
in
{
inherit bankserver;
bankserverDocker = pkgs.dockerTools.buildLayeredImage {
name = "bankserver";
# tag = "latest";
created = "now";
contents = [ bankserver ];
config = {
Env = [ "HOST=::" ];
Entrypoint = [ "/bin/bankserver" ];
ExposedPorts = {
"3845/tcp" = { };
};
};
};
};
in
{
packages = forAllSystems (pkgs: {
default = pkgs.bankserver;
dockerImage = pkgs.bankserverDocker;
dockerImage-cross-aarch64-linux = pkgs.pkgsCross.aarch64-multiplatform.bankserverDocker;
});
devShells = forAllSystems (pkgs: {
default = pkgs.mkShell {
packages = with pkgs; [
hurl
redocly
yq-go
just
];
};
});
};
}