todo - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
todo (592B)
---
1 #!/bin/sh
2 #
3 # Write/remove a task to do later.
4 #
5 # Select an existing entry to remove it from the file, or type a new entry to
6 # add it.
7 #
8
9 file="$HOME/.todo"
10 touch "$file"
11 height=$(wc -l "$file" | awk '{print $1}')
12 prompt="Add/delete a task: "
13
14 cmd=$(dmenu -l "$height" -p "$prompt" "$@" < "$file")
15 while [ -n "$cmd" ]; do
16 if grep -q "^$cmd\$" "$file"; then
17 grep -v "^$cmd\$" "$file" > "$file.$$"
18 mv "$file.$$" "$file"
19 height=$(( height - 1 ))
20 else
21 echo "$cmd" >> "$file"
22 height=$(( height + 1 ))
23 fi
24
25 cmd=$(dmenu -l "$height" -p "$prompt" "$@" < "$file")
26 done
27
28 exit 0