From 41bdeb88009dd232808edee9fc0e4ae94358d8d6 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sat, 29 Aug 2026 02:02:23 +0530 Subject: refactor: moving script into modules that makes sense - instead of collecting all scripts into modules/scripts we are moving them to modules that makes sense (yazi-file-chooser.sh into yazi) --- modules/communication/neomutt/default.nix | 47 +++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 5 deletions(-) (limited to 'modules/communication/neomutt/default.nix') diff --git a/modules/communication/neomutt/default.nix b/modules/communication/neomutt/default.nix index 8613032..8e5d51b 100644 --- a/modules/communication/neomutt/default.nix +++ b/modules/communication/neomutt/default.nix @@ -2,8 +2,32 @@ { config, lib, + pkgs, ... }: +let + inherit ((import ../../lib/script.nix { inherit lib pkgs; })) mkScriptModule; + neomuttSync = mkScriptModule { + scope = [ + "communication" + "neomutt" + ]; + name = "neomutt-sync"; + path = ./neomutt-sync.sh; + description = "Neomutt-sync - Interactive mail sync with dialog progress bar"; + deps = [ + pkgs.bash + pkgs.dialog + pkgs.coreutils + pkgs.gawk + pkgs.gnused + pkgs.util-linux + config.programs.mbsync.package + config.programs.notmuch.package + ]; + inherit config; + }; +in { imports = [ ./account @@ -23,10 +47,23 @@ default = config.programs.neomutt.package; description = "The neomutt package to use, wrapped with urlscan in PATH."; }; - }; + } + // neomuttSync.options.communication.neomutt; - config = lib.mkIf config.communication.neomutt.enable { - accounts.email.maildirBasePath = "${config.home.homeDirectory}/.local/share/mail"; - home.sessionVariables.MAILDIR = config.accounts.email.maildirBasePath; - }; + config = lib.mkMerge [ + (lib.mkIf config.communication.neomutt.enable { + accounts.email.maildirBasePath = "${config.home.homeDirectory}/.local/share/mail"; + home.sessionVariables.MAILDIR = config.accounts.email.maildirBasePath; + }) + neomuttSync.config + { + assertions = [ + { + assertion = + !config.communication.neomutt.neomutt-sync.enable || config.communication.neomutt.enable; + message = "communication.neomutt.neomutt-sync is enabled but requires `communication.neomutt.enable`."; + } + ]; + } + ]; } -- cgit v1.2.3