tvl-depot/users/grfn/system/home/modules/email.nix
sterni 0c178a0ef6 chore(3p/sources): Bump channels & overlays
Upstream nixpkgs removed a lot of aliases this time, so we needed to do
the following transformations. It's a real shame that aliases only
really become discoverable easily when they are removed.

* runCommandNoCC -> runCommand
* gmailieer -> lieer
  We also need to work around the fact that home-manager hasn't catched
  on to this rename.
* mysql -> mariadb
* pkgconfig -> pkg-config
  This also affects our Nix fork which needs to be bumped.
* prometheus_client -> prometheus-client
* rxvt_unicode -> rxvt-unicode-unwrapped
* nix-review -> nixpkgs-review
* oauth2_proxy -> oauth2-proxy

Additionally, some Go-related builders decided to drop support for
passing the sha256 hash in directly, so we need to use the generic hash
arguments.

Change-Id: I84aaa225ef18962937f8616a9ff064822f0d5dc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6792
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-09-28 08:02:31 +00:00

98 lines
2.3 KiB
Nix

{ lib, pkgs, config, ... }:
with lib;
let
# from home-manager/modules/services/lieer.nix
escapeUnitName = name:
let
good = upperChars ++ lowerChars ++ stringToCharacters "0123456789-_";
subst = c: if any (x: x == c) good then c else "-";
in
stringAsChars subst name;
accounts = {
personal = {
primary = true;
address = "root@gws.fyi";
aliases = [ "grfn@gws.fyi" ];
passEntry = "root-gws-msmtp";
};
work = {
address = "griffin@readyset.io";
passEntry = "readyset/msmtp";
};
};
in
{
# 2022-09-26: workaround for home-manager defaulting to removed pkgs.gmailieer
# attribute, can likely be removed soon
programs.lieer.package = pkgs.lieer;
programs.lieer.enable = true;
programs.notmuch.enable = true;
services.lieer.enable = true;
programs.msmtp.enable = true;
home.packages = with pkgs; [
mu
msmtp
config.lib.depot.users.grfn.pkgs.notmuch-extract-patch
];
systemd.user.services = mapAttrs'
(name: account: {
name = escapeUnitName "lieer-${name}";
value.Service = {
ExecStart = mkForce "${pkgs.writeShellScript "sync-${name}" ''
${pkgs.lieer}/bin/gmi sync --path ~/mail/${name}
''}";
Environment = "NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}";
};
})
accounts;
# xdg.configFile."notifymuch/notifymuch.cfg".text = generators.toINI {} {
# notifymuch = {
# query = "is:unread and is:important";
# mail_client = "";
# recency_interval_hours = "48";
# hidden_tags = "inbox unread attachment replied sent encrypted signed";
# };
# };
accounts.email.maildirBasePath = "mail";
accounts.email.accounts = mapAttrs
(_: params@{ passEntry, ... }: {
realName = "Griffin Smith";
passwordCommand = "pass ${passEntry}";
flavor = "gmail.com";
imapnotify = {
enable = true;
boxes = [ "Inbox" ];
};
gpg = {
key = "0F11A989879E8BBBFDC1E23644EF5B5E861C09A7";
signByDefault = true;
};
notmuch.enable = true;
lieer = {
enable = true;
sync = {
enable = true;
frequency = "*:*";
};
};
msmtp.enable = true;
} // builtins.removeAttrs params [ "passEntry" ])
accounts;
}