summaryrefslogtreecommitdiff
path: root/scripts/todo
diff options
context:
space:
mode:
authorSaumit Dinesan <79687674+Saumit-D@users.noreply.github.com>2022-01-23 21:37:21 +0530
committerGitHub <noreply@github.com>2022-01-23 21:37:21 +0530
commit1d07f8f739ea5ca8040904310eda7567fd262820 (patch)
treedb7b864208303389d9f94eba5c4cad2bb043669f /scripts/todo
parentfaae8a7731baac1e954d1141bb053c260888cfd4 (diff)
Add files via upload
Diffstat (limited to 'scripts/todo')
-rw-r--r--scripts/todo28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/todo b/scripts/todo
new file mode 100644
index 0000000..17d7415
--- /dev/null
+++ b/scripts/todo
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# Write/remove a task to do later.
+#
+# Select an existing entry to remove it from the file, or type a new entry to
+# add it.
+#
+
+file="$HOME/.todo"
+touch "$file"
+height=$(wc -l "$file" | awk '{print $1}')
+prompt="Add/delete a task: "
+
+cmd=$(dmenu -l "$height" -p "$prompt" "$@" < "$file")
+while [ -n "$cmd" ]; do
+ if grep -q "^$cmd\$" "$file"; then
+ grep -v "^$cmd\$" "$file" > "$file.$$"
+ mv "$file.$$" "$file"
+ height=$(( height - 1 ))
+ else
+ echo "$cmd" >> "$file"
+ height=$(( height + 1 ))
+ fi
+
+ cmd=$(dmenu -l "$height" -p "$prompt" "$@" < "$file")
+done
+
+exit 0