diff --git a/pkgs/by-name/id/idmail/package.nix b/pkgs/by-name/id/idmail/package.nix new file mode 100644 index 000000000000..039ce22b3ccc --- /dev/null +++ b/pkgs/by-name/id/idmail/package.nix @@ -0,0 +1,81 @@ +{ + binaryen, + cargo-leptos, + fetchFromGitHub, + lib, + rustc, + makeWrapper, + nix-update-script, + nodePackages, + rustPlatform, + tailwindcss_3, + wasm-bindgen-cli_0_2_100, +}: +let + tailwindcss = tailwindcss_3.overrideAttrs (_prev: { + plugins = [ + nodePackages."@tailwindcss/aspect-ratio" + nodePackages."@tailwindcss/forms" + nodePackages."@tailwindcss/line-clamp" + nodePackages."@tailwindcss/typography" + ]; + }); +in +rustPlatform.buildRustPackage rec { + pname = "idmail"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "oddlama"; + repo = "idmail"; + tag = "v${version}"; + hash = "sha256-9rl2UG8DeWd8hVh3N+dqyV5gO0LErok+kZ1vQZnVAe8="; + }; + + useFetchCargoVendor = true; + cargoHash = "sha256-UcS2gAoa2fzPu6hh8I5sXSHHbAmzsecT44Ju2CVsK0Q="; + + RUSTC_BOOTSTRAP = 1; + RUSTFLAGS = "--cfg=web_sys_unstable_apis"; + + nativeBuildInputs = [ + wasm-bindgen-cli_0_2_100 + binaryen + cargo-leptos + rustc.llvmPackages.lld + tailwindcss + makeWrapper + ]; + buildPhase = '' + runHook preBuild + + cargo leptos build --release + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share + cp target/release/idmail $out/bin + cp -r target/site $out/share + wrapProgram $out/bin/idmail --set LEPTOS_SITE_ROOT $out/share/site + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Email alias and account management interface for self-hosted mailservers"; + homepage = "https://github.com/oddlama/idmail"; + changelog = "https://github.com/oddlama/idmail/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + oddlama + patrickdag + ]; + mainProgram = "idmail"; + }; +}