summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Bütow <1224732+snonux@users.noreply.github.com>2025-06-20 21:11:02 +0300
committerPaul Bütow <1224732+snonux@users.noreply.github.com>2025-06-20 21:11:02 +0300
commit0acdd70e95618c7bb50db7b6b55b5272409f454c (patch)
tree951a23fa299ee251987a387f7b7f03f2d645e347
parent8de85810e32076b1e81588b2405e78bdefe94c93 (diff)
Pass CLI args to task binary
-rw-r--r--cmd/tasksamurai/main.go3
-rw-r--r--internal/ui/table.go32
-rw-r--r--internal/ui/table_test.go10
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)
}