-
-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathdue.sh
More file actions
37 lines (33 loc) · 1004 Bytes
/
due.sh
File metadata and controls
37 lines (33 loc) · 1004 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
myPluginID="$(getNextPluginID)"
myPlugin="plugin$myPluginID"
myPluginCommand='due'
myPluginDescription="Shows $LIMIT_BY tasks ordered by due date"
myPluginMethod='queryDue'
eval "$myPlugin=('$myPluginCommand' '$myPluginDescription' '$myPluginMethod')"
queryDue() {
sqlite3 "$THINGSDB" "$(getDueQuery)"
}
getDueQuery() {
read -rd '' query <<-SQL || true
SELECT
date(TASK.deadline,"unixepoch"),
CASE
WHEN AREA.title IS NOT NULL THEN AREA.title
WHEN PROJECT.title IS NOT NULL THEN PROJECT.title
WHEN HEADING.title IS NOT NULL THEN HEADING.title
ELSE "(No Context)"
END,
TASK.title,
"things:///show?id=" || TASK.uuid
FROM $TASKTABLE as TASK
LEFT OUTER JOIN $TASKTABLE PROJECT ON TASK.project = PROJECT.uuid
LEFT OUTER JOIN $AREATABLE AREA ON TASK.area = AREA.uuid
LEFT OUTER JOIN $TASKTABLE HEADING ON TASK.heading = HEADING.uuid
WHERE TASK.$ISNOTTRASHED AND TASK.$ISOPEN
AND TASK.deadline NOT NULL
ORDER BY TASK.deadline
LIMIT $LIMIT_BY
SQL
echo "$query"
}