aboutsummaryrefslogtreecommitdiff
path: root/modules/services/imapnotify.nix
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2020-02-02 00:39:17 +0100
committerRobert Helgesson <robert@rycee.net>2020-02-02 01:07:28 +0100
commit45abf3d38a2b51c00c347cab6950f3734e023bba (patch)
tree414fde5d14d1d075fa65e59175660fd1fb680c43 /modules/services/imapnotify.nix
parent9799d3de2d270a9c40fcf81d600bfd71088e144d (diff)
Apply `nixfmt` on many files
Diffstat (limited to 'modules/services/imapnotify.nix')
-rw-r--r--modules/services/imapnotify.nix143
1 files changed, 63 insertions, 80 deletions
diff --git a/modules/services/imapnotify.nix b/modules/services/imapnotify.nix
index fbb0713e978..b59b006e335 100644
--- a/modules/services/imapnotify.nix
+++ b/modules/services/imapnotify.nix
@@ -6,102 +6,85 @@ let
cfg = config.services.imapnotify;
- safeName = lib.replaceChars ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""];
+ safeName = lib.replaceChars [ "@" ":" "\\" "[" "]" ] [ "-" "-" "-" "" "" ];
imapnotifyAccounts =
- filter (a: a.imapnotify.enable)
- (attrValues config.accounts.email.accounts);
+ filter (a: a.imapnotify.enable) (attrValues config.accounts.email.accounts);
genAccountUnit = account:
- let
- name = safeName account.name;
- in
- {
- name = "imapnotify-${name}";
- value = {
- Unit = {
- Description = "imapnotify for ${name}";
- };
-
- Service = {
- ExecStart = "${pkgs.imapnotify}/bin/imapnotify -c ${genAccountConfig account}";
- } // optionalAttrs account.notmuch.enable {
- Environment = "NOTMUCH_CONFIG=${config.xdg.configHome}/notmuch/notmuchrc";
- };
-
- Install = {
- WantedBy = [ "default.target" ];
- };
+ let name = safeName account.name;
+ in {
+ name = "imapnotify-${name}";
+ value = {
+ Unit = { Description = "imapnotify for ${name}"; };
+
+ Service = {
+ ExecStart =
+ "${pkgs.imapnotify}/bin/imapnotify -c ${genAccountConfig account}";
+ } // optionalAttrs account.notmuch.enable {
+ Environment =
+ "NOTMUCH_CONFIG=${config.xdg.configHome}/notmuch/notmuchrc";
};
+
+ Install = { WantedBy = [ "default.target" ]; };
};
+ };
genAccountConfig = account:
- pkgs.writeText "imapnotify-${safeName account.name}-config.js" (
- let
- port =
- if account.imap.port != null then account.imap.port
- else if account.imap.tls.enable then 993
- else 143;
-
- toJSON = builtins.toJSON;
- in
- ''
- var child_process = require('child_process');
-
- function getStdout(cmd) {
- var stdout = child_process.execSync(cmd);
- return stdout.toString().trim();
- }
-
- exports.host = ${toJSON account.imap.host}
- exports.port = ${toJSON port};
- exports.tls = ${toJSON account.imap.tls.enable};
- exports.username = ${toJSON account.userName};
- exports.password = getStdout("${toString account.passwordCommand}");
- exports.onNotify = ${toJSON account.imapnotify.onNotify};
- exports.onNotifyPost = ${toJSON account.imapnotify.onNotifyPost};
- exports.boxes = ${toJSON account.imapnotify.boxes};
- ''
- );
-
-in
-
-{
+ pkgs.writeText "imapnotify-${safeName account.name}-config.js" (let
+ port = if account.imap.port != null then
+ account.imap.port
+ else if account.imap.tls.enable then
+ 993
+ else
+ 143;
+
+ toJSON = builtins.toJSON;
+ in ''
+ var child_process = require('child_process');
+
+ function getStdout(cmd) {
+ var stdout = child_process.execSync(cmd);
+ return stdout.toString().trim();
+ }
+
+ exports.host = ${toJSON account.imap.host}
+ exports.port = ${toJSON port};
+ exports.tls = ${toJSON account.imap.tls.enable};
+ exports.username = ${toJSON account.userName};
+ exports.password = getStdout("${toString account.passwordCommand}");
+ exports.onNotify = ${toJSON account.imapnotify.onNotify};
+ exports.onNotifyPost = ${toJSON account.imapnotify.onNotifyPost};
+ exports.boxes = ${toJSON account.imapnotify.boxes};
+ '');
+
+in {
meta.maintainers = [ maintainers.nickhu ];
options = {
- services.imapnotify = {
- enable = mkEnableOption "imapnotify";
- };
+ services.imapnotify = { enable = mkEnableOption "imapnotify"; };
accounts.email.accounts = mkOption {
- type = with types; attrsOf (submodule (
- import ./imapnotify-accounts.nix
- ));
+ type = with types; attrsOf (submodule (import ./imapnotify-accounts.nix));
};
};
config = mkIf cfg.enable {
- assertions =
- let
- checkAccounts = pred: msg:
- let
- badAccounts = filter pred imapnotifyAccounts;
- in
- {
- assertion = badAccounts == [];
- message = "imapnotify: Missing ${msg} for accounts: "
- + concatMapStringsSep ", " (a: a.name) badAccounts;
- };
- in
- [
- (checkAccounts (a: a.maildir == null) "maildir configuration")
- (checkAccounts (a: a.imap == null) "IMAP configuration")
- (checkAccounts (a: a.passwordCommand == null) "password command")
- (checkAccounts (a: a.userName == null) "username")
- ];
-
- systemd.user.services =
- listToAttrs (map genAccountUnit imapnotifyAccounts);
+ assertions = let
+ checkAccounts = pred: msg:
+ let badAccounts = filter pred imapnotifyAccounts;
+ in {
+ assertion = badAccounts == [ ];
+ message = "imapnotify: Missing ${msg} for accounts: "
+ + concatMapStringsSep ", " (a: a.name) badAccounts;
+ };
+ in [
+ (checkAccounts (a: a.maildir == null) "maildir configuration")
+ (checkAccounts (a: a.imap == null) "IMAP configuration")
+ (checkAccounts (a: a.passwordCommand == null) "password command")
+ (checkAccounts (a: a.userName == null) "username")
+ ];
+
+ systemd.user.services = listToAttrs (map genAccountUnit imapnotifyAccounts);
};
}