1{
2 lib,
3 stdenv,
4 buildDotnetModule,
5 fetchFromGitHub,
6 nodejs,
7 npmHooks,
8 fetchNpmDeps,
9 dotnetCorePackages,
10}:
11
12buildDotnetModule (finalAttrs: {
13 pname = "smtp4dev";
14 version = "3.8.6";
15
16 src = fetchFromGitHub {
17 owner = "rnwood";
18 repo = "smtp4dev";
19 tag = finalAttrs.version;
20 hash = "sha256-k4nerh4cVVcFQF7a4Wvcfhefa3SstEOASk+0soN0n9k=";
21 };
22
23 patches = [ ./smtp4dev-npm-packages.patch ];
24
25 nativeBuildInputs = [
26 nodejs
27 nodejs.python
28 npmHooks.npmConfigHook
29 stdenv.cc # c compiler is needed for compiling npm-deps
30 ];
31
32 npmRoot = "Rnwood.Smtp4dev/ClientApp";
33
34 npmDeps = fetchNpmDeps {
35 inherit (finalAttrs) src patches;
36 hash = "sha256-Uj0EnnsA+QHq5KHF2B93OG8rwxYrV6sEgMTbd43ttCA=";
37 postPatch = "cd ${finalAttrs.npmRoot}";
38 };
39
40 dotnet-sdk = dotnetCorePackages.sdk_8_0;
41 dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
42 projectFile = "Rnwood.Smtp4dev/Rnwood.Smtp4dev.csproj";
43 nugetDeps = ./deps.json;
44 executables = [ "Rnwood.Smtp4dev" ];
45
46 postFixup = ''
47 mv $out/bin/Rnwood.Smtp4dev $out/bin/smtp4dev
48 '';
49
50 passthru.updateScript = ./update.sh;
51
52 meta = {
53 description = "Fake smtp email server for development and testing";
54 homepage = "https://github.com/rnwood/smtp4dev";
55 license = lib.licenses.bsd3;
56 mainProgram = "smtp4dev";
57 maintainers = with lib.maintainers; [
58 rucadi
59 jchw
60 defelo
61 ];
62 platforms = lib.platforms.unix;
63 };
64})