From e5d2f4eb34e6d6820a9f05855abe6a45994c4bd2 Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Fri, 15 Nov 2024 14:02:30 +0100 Subject: Support -t flag and tags config field for filtering tasks by tags --- config.ha | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'config.ha') diff --git a/config.ha b/config.ha index a452665..b70341a 100644 --- a/config.ha +++ b/config.ha @@ -9,6 +9,7 @@ use io; type config = struct { tasksdir: str, context: str, + tags: []str, }; type cerror = !(fs::error | path::error | ini::error); @@ -23,6 +24,7 @@ fn readconfig() (config | cerror) = { const c = config { tasksdir = strings::dup("tasks"), context = strings::dup("*"), + tags = [], }; for (const en => ini::next(&sc)?) { switch (en.1) { @@ -30,6 +32,8 @@ fn readconfig() (config | cerror) = { c.tasksdir = strings::dup(strings::trim(en.2)); case "context" => c.tasksdir = strings::dup(strings::trim(en.2)); + case "tags" => + c.tags = strings::dupall(strings::split(strings::trim(en.2), ",")); case => void; }; @@ -40,6 +44,7 @@ fn readconfig() (config | cerror) = { fn cfinish(cfg: *config) void = { free(cfg.tasksdir); free(cfg.context); + strings::freeall(cfg.tags); }; fn strcerror(e: cerror) str = { -- cgit v1.2.3