Issue fix: Multiple do items
Can now do multiple items in one go. Either comma seperated list or a whitespace seperated list
This commit is contained in:
72
tests/t1500-do.sh
Executable file
72
tests/t1500-do.sh
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
test_description='do functionality
|
||||||
|
'
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
#DATE=`date '+%Y-%m-%d'`
|
||||||
|
|
||||||
|
test_todo_session 'do usage' <<EOF
|
||||||
|
>>> todo.sh do B B
|
||||||
|
usage: todo.sh do ITEM#
|
||||||
|
=== 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > todo.txt <<EOF
|
||||||
|
smell the uppercase Roses +flowers @outside
|
||||||
|
notice the sunflowers
|
||||||
|
stop
|
||||||
|
remove1
|
||||||
|
remove2
|
||||||
|
remove3
|
||||||
|
remove4
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_todo_session 'basic do' <<EOF
|
||||||
|
>>> todo.sh list
|
||||||
|
2 notice the sunflowers
|
||||||
|
4 remove1
|
||||||
|
5 remove2
|
||||||
|
6 remove3
|
||||||
|
7 remove4
|
||||||
|
1 smell the uppercase Roses +flowers @outside
|
||||||
|
3 stop
|
||||||
|
--
|
||||||
|
TODO: 7 of 7 tasks shown from $HOME/todo.txt
|
||||||
|
|
||||||
|
>>> todo.sh do 7,6
|
||||||
|
7: x 2009-02-13 remove4
|
||||||
|
TODO: 7 marked as done.
|
||||||
|
6: x 2009-02-13 remove3
|
||||||
|
TODO: 6 marked as done.
|
||||||
|
x 2009-02-13 remove3
|
||||||
|
x 2009-02-13 remove4
|
||||||
|
TODO: $HOME/todo.txt archived.
|
||||||
|
|
||||||
|
>>> todo.sh -p list
|
||||||
|
2 notice the sunflowers
|
||||||
|
4 remove1
|
||||||
|
5 remove2
|
||||||
|
1 smell the uppercase Roses +flowers @outside
|
||||||
|
3 stop
|
||||||
|
--
|
||||||
|
TODO: 5 of 5 tasks shown from $HOME/todo.txt
|
||||||
|
|
||||||
|
>>> todo.sh do 5 4
|
||||||
|
5: x 2009-02-13 remove2
|
||||||
|
TODO: 5 marked as done.
|
||||||
|
4: x 2009-02-13 remove1
|
||||||
|
TODO: 4 marked as done.
|
||||||
|
x 2009-02-13 remove1
|
||||||
|
x 2009-02-13 remove2
|
||||||
|
TODO: $HOME/todo.txt archived.
|
||||||
|
|
||||||
|
>>> todo.sh -p list
|
||||||
|
2 notice the sunflowers
|
||||||
|
1 smell the uppercase Roses +flowers @outside
|
||||||
|
3 stop
|
||||||
|
--
|
||||||
|
TODO: 3 of 3 tasks shown from $HOME/todo.txt
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_done
|
||||||
9
todo.sh
9
todo.sh
@@ -675,7 +675,12 @@ case $action in
|
|||||||
|
|
||||||
"do" )
|
"do" )
|
||||||
errmsg="usage: $TODO_SH do ITEM#"
|
errmsg="usage: $TODO_SH do ITEM#"
|
||||||
item=$2
|
# shift so we get arguments to the do request
|
||||||
|
shift;
|
||||||
|
|
||||||
|
# Split multiple do's, if comma seperated change to whitespace sepereated
|
||||||
|
# Loop the 'do' function for each item
|
||||||
|
for item in `echo $* | tr ',' ' '`; do
|
||||||
[ -z "$item" ] && die "$errmsg"
|
[ -z "$item" ] && die "$errmsg"
|
||||||
[[ "$item" = +([0-9]) ]] || die "$errmsg"
|
[[ "$item" = +([0-9]) ]] || die "$errmsg"
|
||||||
|
|
||||||
@@ -689,13 +694,13 @@ case $action in
|
|||||||
newtodo=$(sed "$item!d" "$TODO_FILE")
|
newtodo=$(sed "$item!d" "$TODO_FILE")
|
||||||
[ $TODOTXT_VERBOSE -gt 0 ] && echo "$item: $newtodo"
|
[ $TODOTXT_VERBOSE -gt 0 ] && echo "$item: $newtodo"
|
||||||
[ $TODOTXT_VERBOSE -gt 0 ] && echo "TODO: $item marked as done."
|
[ $TODOTXT_VERBOSE -gt 0 ] && echo "TODO: $item marked as done."
|
||||||
|
done
|
||||||
|
|
||||||
if [ $TODOTXT_AUTO_ARCHIVE = 1 ]; then
|
if [ $TODOTXT_AUTO_ARCHIVE = 1 ]; then
|
||||||
archive
|
archive
|
||||||
fi
|
fi
|
||||||
cleanup ;;
|
cleanup ;;
|
||||||
|
|
||||||
|
|
||||||
"help" )
|
"help" )
|
||||||
help
|
help
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user