diff options
| author | Paul Bütow <1224732+snonux@users.noreply.github.com> | 2025-06-20 21:11:29 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-20 21:11:29 +0300 |
| commit | da2d738eaa5e297c44aba89ad9a3fc9df9a45ca0 (patch) | |
| tree | 951a23fa299ee251987a387f7b7f03f2d645e347 | |
| parent | 8de85810e32076b1e81588b2405e78bdefe94c93 (diff) | |
| parent | 0acdd70e95618c7bb50db7b6b55b5272409f454c (diff) | |
Merge pull request #40 from snonux/codex/modify-tasksamurai-command-flags
Pass CLI args to task
| -rw-r--r-- | cmd/tasksamurai/main.go | 3 | ||||
| -rw-r--r-- | internal/ui/table.go | 32 | ||||
| -rw-r--r-- | internal/ui/table_test.go | 10 |
3 files changed, 18 insertions, 27 deletions
diff --git a/cmd/tasksamurai/main.go b/cmd/tasksamurai/main.go index bd3cd24..52263de 100644 --- a/cmd/tasksamurai/main.go +++ b/cmd/tasksamurai/main.go @@ -12,7 +12,6 @@ import ( ) func main() { - filter := flag.String("filter", "", "task filter expression") debugLog := flag.String("debug-log", "", "path to debug log file") flag.Parse() @@ -21,7 +20,7 @@ func main() { os.Exit(1) } - m, err := ui.New(*filter) + m, err := ui.New(flag.Args()) if err != nil { fmt.Fprintln(os.Stderr, "failed to load tasks:", err) os.Exit(1) diff --git a/internal/ui/table.go b/internal/ui/table.go index bd1d4ca..50fb7d1 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -22,6 +22,7 @@ func init() { } // Model wraps a Bubble Tea table.Model to display tasks. + type Model struct { tbl atable.Model showHelp bool @@ -35,8 +36,8 @@ type Model struct { dueID int dueInput textinput.Model - filter string - tasks []task.Task + filters []string + tasks []task.Task total int inProgress int @@ -54,8 +55,8 @@ func editCmd(id int) tea.Cmd { } // New creates a new UI model with the provided rows. -func New(filter string) (Model, error) { - m := Model{filter: filter} +func New(filters []string) (Model, error) { + m := Model{filters: filters} m.annotateInput = textinput.New() m.annotateInput.Prompt = "annotation: " m.dueInput = textinput.New() @@ -94,31 +95,22 @@ func newTable(rows []atable.Row) atable.Model { } func (m *Model) reload() error { - filters := append(strings.Fields(m.filter), "status:pending") - tasks, err := task.Export(filters...) + tasks, err := task.Export(m.filters...) if err != nil { return err } - var filtered []task.Task - for _, tsk := range tasks { - if tsk.Status == "completed" { - continue - } - filtered = append(filtered, tsk) - } - - task.SortTasks(filtered) + task.SortTasks(tasks) var rows []atable.Row - for _, tsk := range filtered { + for _, tsk := range tasks { rows = append(rows, taskToRow(tsk)) } - m.tasks = filtered - m.total = task.TotalTasks(filtered) - m.inProgress = task.InProgressTasks(filtered) - m.due = task.DueTasks(filtered, time.Now()) + m.tasks = tasks + m.total = task.TotalTasks(tasks) + m.inProgress = task.InProgressTasks(tasks) + m.due = task.DueTasks(tasks, time.Now()) if m.tbl.Columns() == nil { m.tbl = newTable(rows) diff --git a/internal/ui/table_test.go b/internal/ui/table_test.go index f02d587..0ce8c27 100644 --- a/internal/ui/table_test.go +++ b/internal/ui/table_test.go @@ -40,7 +40,7 @@ func TestAnnotateHotkey(t *testing.T) { os.Unsetenv("TASKRC") }) - m, err := New("") + m, err := New(nil) if err != nil { t.Fatalf("New: %v", err) } @@ -96,7 +96,7 @@ func TestReplaceAnnotationHotkey(t *testing.T) { os.Unsetenv("TASKRC") }) - m, err := New("") + m, err := New(nil) if err != nil { t.Fatalf("New: %v", err) } @@ -156,7 +156,7 @@ func TestDoneHotkey(t *testing.T) { os.Unsetenv("TASKRC") }) - m, err := New("") + m, err := New(nil) if err != nil { t.Fatalf("New: %v", err) } @@ -201,7 +201,7 @@ func TestDueDateHotkey(t *testing.T) { os.Unsetenv("TASKRC") }) - m, err := New("") + m, err := New(nil) if err != nil { t.Fatalf("New: %v", err) } @@ -252,7 +252,7 @@ func TestRandomDueDateHotkey(t *testing.T) { os.Unsetenv("TASKRC") }) - m, err := New("") + m, err := New(nil) if err != nil { t.Fatalf("New: %v", err) } |
