56 lines
1.5 KiB
Nix
56 lines
1.5 KiB
Nix
{
|
|
description = "mailmig: migrate mail from Stalwart to Simple NixOS Mailserver over IMAP";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
|
# Same branch the cnx-network-clan mx1 runs.
|
|
nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-26.05";
|
|
nixos-mailserver.inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
nixos-mailserver,
|
|
}:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
inherit (pkgs) lib;
|
|
mailmig = pkgs.rustPlatform.buildRustPackage {
|
|
pname = "mailmig";
|
|
version = (lib.importTOML ./Cargo.toml).package.version;
|
|
src = lib.fileset.toSource {
|
|
root = ./.;
|
|
fileset = lib.fileset.unions [
|
|
./Cargo.toml
|
|
./Cargo.lock
|
|
./src
|
|
./mailmig.example.toml
|
|
];
|
|
};
|
|
cargoLock.lockFile = ./Cargo.lock;
|
|
# The sandbox has no system CA store; the HTTP client needs one to build.
|
|
SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
|
|
meta.mainProgram = "mailmig";
|
|
};
|
|
in
|
|
{
|
|
packages.${system}.default = mailmig;
|
|
|
|
checks.${system} = {
|
|
inherit mailmig;
|
|
e2e = pkgs.testers.runNixOSTest (import ./tests/e2e.nix { inherit mailmig nixos-mailserver; });
|
|
};
|
|
|
|
devShells.${system}.default = pkgs.mkShell {
|
|
inputsFrom = [ mailmig ];
|
|
packages = [
|
|
pkgs.rustfmt
|
|
pkgs.clippy
|
|
];
|
|
};
|
|
};
|
|
}
|