protonmail-export: init at 1.0.5

(cherry picked from commit 4349f8ca76)
This commit is contained in:
Ryan Omasta
2025-06-29 20:28:13 -06:00
committed by github-actions[bot]
parent 3634657dc2
commit 4c7d596449

View File

@@ -0,0 +1,106 @@
{
lib,
stdenv,
fetchFromGitHub,
buildGoModule,
cmake,
curl,
go,
unzip,
zip,
catch2,
cxxopts,
fmt,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "protonmail-export";
version = "1.0.5";
src = fetchFromGitHub {
owner = "ProtonMail";
repo = "proton-mail-export";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-rpfTI3vcZlEK1TrxRMMHFKutwC/YqAZrZCFiUsfMafc=";
};
goModules =
(buildGoModule {
pname = "protonmail-export-go-modules";
inherit (finalAttrs) src version;
sourceRoot = "${finalAttrs.src.name}/go-lib";
vendorHash = "sha256-rKi3PNsYsZA+MLcLTVrVI3T2SUBZCiq9Zxtf+1SGArk=";
nativeBuildInputs = [ unzip ];
proxyVendor = true;
}).goModules;
postPatch = ''
echo "" > vcpkg/scripts/buildsystems/vcpkg.cmake
substituteInPlace CMakeLists.txt \
--replace-fail 'include(clang_tidy)' ''' \
--replace-fail 'include(clang_format)' '''
substituteInPlace lib/CMakeLists.txt \
--replace-fail 'add_subdirectory(tests)' '''
substituteInPlace cli/bin/main.cpp --replace-fail \
'execPath = etcpp::getExecutableDir();' 'execPath = std::filesystem::u8path(std::getenv("HOME")) / ".config" / "protonmail-export";'
'';
preConfigure = ''
export GOCACHE=$TMPDIR/go-cache
export GOPATH=$TMPDIR/go
export GOPROXY=file://$goModules
'';
nativeBuildInputs = [
cmake
curl
go
unzip
zip
];
buildInputs = [
fmt
catch2
cxxopts
];
postInstall =
let
so = "proton-mail-export${stdenv.hostPlatform.extensions.library}";
in
''
install -Dm644 $out/bin/${so} -t $out/lib
rm -f $out/bin/${so}
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -change @loader_path/${so} \
$out/lib/${so} \
$out/bin/proton-mail-export-cli
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/proton-mail-export-cli";
versionCheckProgramArg = "--version";
doInstallCheck = true;
meta = {
description = "Export your Proton Mail emails as eml files";
homepage = "https://github.com/ProtonMail/proton-mail-export";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.ryand56 ];
mainProgram = "proton-mail-export-cli";
};
})