sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit dc307d33e7d6de699885cbe3872bc21441285840
parent 46e5f408777096e389f24c290cc8131ce1ea713f
Author: Martin Tournoij <martin@arp242.net>
Date:   Tue, 22 Jan 2019 14:02:21 +1300

dmenu/scripts/todo: various cleanups

Diffstat:
Mtools.suckless.org/dmenu/scripts/todo | 45+++++++++++++++++++++------------------------
1 file changed, 21 insertions(+), 24 deletions(-)

diff --git a/tools.suckless.org/dmenu/scripts/todo b/tools.suckless.org/dmenu/scripts/todo @@ -1,31 +1,28 @@ #!/bin/sh +# # Write/remove a task to do later. -SB="#336699" -SF="#ccc" -NB="#111" -NF="#ccc" -FN="-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-iso10646-*" +# +# Select an existing entry to remove it from the file, or type a new entry to +# add it. +# -FILE=~/.todo -HEIGHT=$(cat $FILE | wc -l) -PROMPT="Add/delete a task" +file="$HOME/.todo" +touch "$file" +height=$(wc -l "$file" | awk '{print $1}') +prompt="Add/delete a task: " -ACTION="cat $FILE | dmenu -fn $FN -l '$HEIGHT' -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -p '$PROMPT:' " -CMD=$(eval $ACTION) -while [ -n "$CMD" ]; do - grep -q "^$CMD" $FILE - if [ $? = 0 ]; then - grep -v "^$CMD" $FILE > /tmp/todo - mv /tmp/todo $FILE - HEIGHT=$(($HEIGHT-1)) - ACTION="cat $FILE | dmenu -fn $FN -l '$HEIGHT' -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -p '$PROMPT:' " - else - echo "$CMD" >> $FILE - HEIGHT=$(($HEIGHT+1)) - ACTION="cat $FILE | dmenu -fn $FN -l '$HEIGHT' -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -p '$PROMPT:' " - fi - - CMD=$(eval $ACTION) +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