Separate crates for server and client binaries #1

Merged
shimun merged 28 commits from split_components into master 2023-07-09 19:27:21 +02:00
Showing only changes of commit 7889c5427f - Show all commits

View File

@ -13,7 +13,7 @@
outputs = inputs @ { self, nixpkgs, utils, naersk, ... }:
let
root = inputs.source or self;
pname = (builtins.fromTOML (builtins.readFile (root + "/Cargo.toml"))).package.name;
pname = "ssh-cert-dist";
# toolchains: stable, beta, default(nightly)
toolchain = pkgs:
if inputs ? fenix then inputs.fenix.packages."${pkgs.system}".complete.toolchain
@ -24,15 +24,28 @@
in
rec {
# `nix build`
packages.${pname} = (self.overlay pkgs pkgs).${pname};
packages."${pname}-server" = (self.overlay pkgs pkgs)."${pname}-server";
packages."${pname}-client" = (self.overlay pkgs pkgs)."${pname}-client";
packages."${pname}-client-snap" = pkgs.snapTools.makeSnap {
meta = {
name = pname;
architectures = [ "amd64" ];
confinement = "strict";
apps.hello.command = apps."${pname}-client".program;
};
};
packages.dockerImage = pkgs.runCommandLocal "docker-${pname}.tar.gz" { } "${apps.streamDockerImage.program} | gzip --fast > $out";
packages.default = packages.${pname};
packages.default = packages."${pname}-client";
# `nix run`
apps.${pname} = utils.lib.mkApp {
drv = packages.${pname};
apps."${pname}-server" = utils.lib.mkApp {
drv = packages."${pname}-server";
};
apps."${pname}-client" = utils.lib.mkApp {
drv = packages."${pname}-client";
};
# `nix run .#streamDockerImage | docker load`
@ -41,12 +54,12 @@
name = pname;
tag = self.shortRev or "latest";
config = {
Entrypoint = apps.default.program;
Entrypoint = apps."${pname}-server".program;
};
};
exePath = "";
};
apps.default = apps.${pname};
apps.default = apps."${pname}-client";
# `nix flake check`
checks = {
@ -103,9 +116,15 @@
];
in
{
"${pname}" =
"${pname}-server" =
naersk-lib.buildPackage {
inherit pname root buildInputs nativeBuildInputs;
name = "${pname}-server";
inherit root buildInputs nativeBuildInputs;
};
"${pname}-client" =
naersk-lib.buildPackage {
name = "${pname}-client";
inherit root buildInputs nativeBuildInputs;
};
};