Files
nixpkgs/pkgs/by-name/im/imapgoose/package.nix
2026-05-17 00:32:21 +00:00

57 lines
1.6 KiB
Nix

{
lib,
buildGoModule,
fetchFromSourcehut,
installShellFiles,
}:
buildGoModule rec {
pname = "imapgoose";
version = "0.5.3";
src = fetchFromSourcehut {
owner = "~whynothugo";
repo = "ImapGoose";
tag = "v${version}";
hash = "sha256-koNf75sK3jd/gkUWm+pgbORuZGYBjsNCvQikjLAOvnU=";
};
vendorHash = "sha256-PY6m92/8bzbYjkGvbNtL1W9sMayjPOyWVvJPwKAnLc8=";
subPackages = [
"cmd/imapgoose"
"cmd/capcheck"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage imapgoose.1
installManPage imapgoose.conf.5
installShellCompletion --zsh contrib/_imapgoose
'';
meta = {
description = "IMAP to Maildir synchronization tool";
longDescription = ''
ImapGoose is a daemon that continuously keeps local mailboxes in sync
with an IMAP server. It monitors both the IMAP server and local
filesystem, immediately synchronizing changes within seconds. Unlike
traditional sync tools, ImapGoose is highly optimized to reduce network
traffic by leveraging modern IMAP extensions (CONDSTORE, QRESYNC, and
NOTIFY) to perform efficient incremental syncs. It can monitor multiple
mailboxes per connection and automatically reconnects with exponential
back-off when network issues occur.
'';
homepage = "https://git.sr.ht/~whynothugo/ImapGoose";
changelog = "https://git.sr.ht/~whynothugo/ImapGoose/refs/v${version}";
license = lib.licenses.isc;
platforms = lib.platforms.unix;
mainProgram = "imapgoose";
maintainers = with lib.maintainers; [
philocalyst
bobberb
];
};
}