diff options
| author | Paul Bütow <1224732+snonux@users.noreply.github.com> | 2025-06-22 16:50:46 +0300 |
|---|---|---|
| committer | Paul Bütow <1224732+snonux@users.noreply.github.com> | 2025-06-22 16:50:46 +0300 |
| commit | b140c36cd8bb3d20c7211fe672b9d5674c9f0d3b (patch) | |
| tree | 1f33e866c2a4fdb4df2c41a8acd15c2be81c14b5 /internal/task/task.go | |
| parent | dc1a6e83669dd22be4542833970d3251741ba1f3 (diff) | |
Add generic task command hotkey
Diffstat (limited to 'internal/task/task.go')
| -rw-r--r-- | internal/task/task.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/internal/task/task.go b/internal/task/task.go index b20eef0..5f19482 100644 --- a/internal/task/task.go +++ b/internal/task/task.go @@ -86,6 +86,24 @@ func AddLine(line string) error { return AddArgs(fields) } +// RunArgs executes "task" with the given arguments. Each item in args is +// passed as a separate command-line argument. +func RunArgs(args []string) error { + cmd := exec.Command("task", args...) + return cmd.Run() +} + +// RunLine splits the provided line into shell words and executes "task" with +// the resulting arguments. This allows callers to run arbitrary Taskwarrior +// commands directly. +func RunLine(line string) error { + fields, err := shlex.Split(line) + if err != nil { + return err + } + return RunArgs(fields) +} + // Export retrieves all tasks using `task export rc.json.array=off` and parses // the JSON output into a slice of Task structs. // Export retrieves tasks using `task <filter> export rc.json.array=off` and parses |
