nixos-config/modules/programs/taskwarrior.nix

43 lines
957 B
Nix
Raw Normal View History

2019-10-24 02:20:38 +02:00
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.programs.custom.taskwarrior;
2019-12-20 05:54:26 +01:00
taskNextWeek = pkgs.writeShellScriptBin "taskweek" # sh
''
${pkgs.taskwarrior}/bin/task \
export \
status:pending and \( due.before:6days \) \
| ${pkgs.jq}/bin/jq '[.[] | { Day: .due, ID: .id, Description: .description } ] | sort_by(.Day)' \
| ${pkgs.miller}/bin/mlr --ijson --opprint put "\$Day = strftime(strptime(\$Day,\"%Y%m%dT%H%M%SZ\")$(date +%z)00,\"%A\")"
'';
tsak = pkgs.writeShellScriptBin "tsak" # sh
''
${pkgs.taskwarrior}/bin/task "$@"
'';
2019-10-24 02:20:38 +02:00
in {
2019-12-20 05:54:26 +01:00
options.programs.custom.taskwarrior.enable =
mkEnableOption "Enable Taskwarrior services";
2019-10-24 02:20:38 +02:00
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
taskwarrior
timewarrior
tasksh
taskNextWeek
tsak
python # needed for hooks
];
};
}