Compare commits
3 Commits
archive/re
...
archive/co
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b0309d9bc | ||
|
|
b21d16878f | ||
|
|
3e82f3ca56 |
@@ -9,8 +9,15 @@ On failure, it will print each offending line number and line.
|
||||
'
|
||||
. ./test-lib.sh
|
||||
|
||||
backtick_check()
|
||||
{
|
||||
sed -n -e 's/\(^\|[ \t]\)#.*//' -e '/`/{' -e '=;p' -e '}' "$@"
|
||||
}
|
||||
|
||||
test_todo_session 'no old-style backtick command substitution' <<EOF
|
||||
>>> sed -n -e 's/\(^\|[ \t]\)#.*//' -e '/\`/{' -e '=;p' -e '}' "$(which todo.sh)"
|
||||
>>> backtick_check bin/todo.sh
|
||||
|
||||
>>> backtick_check ../../todo.cfg
|
||||
EOF
|
||||
|
||||
test_done
|
||||
|
||||
@@ -164,12 +164,4 @@ TODO: Replaced task with:
|
||||
1 (A) 2010-07-04 this also has a new date
|
||||
EOF
|
||||
|
||||
echo '2009-02-13 this is just a new one' > todo.txt
|
||||
test_todo_session 'replace with prepended priority and date replaces existing date' <<EOF
|
||||
>>> todo.sh replace 1 '(B) 2010-07-04 this also has a new date'
|
||||
1 2009-02-13 this is just a new one
|
||||
TODO: Replaced task with:
|
||||
1 (B) 2010-07-04 this also has a new date
|
||||
EOF
|
||||
|
||||
test_done
|
||||
|
||||
2
todo.cfg
2
todo.cfg
@@ -2,7 +2,7 @@
|
||||
|
||||
# Your todo.txt directory
|
||||
#export TODO_DIR="/Users/gina/Documents/todo"
|
||||
export TODO_DIR=`dirname "$0"`
|
||||
export TODO_DIR=$(dirname "$0")
|
||||
|
||||
# Your todo/done/report.txt locations
|
||||
export TODO_FILE="$TODO_DIR/todo.txt"
|
||||
|
||||
13
todo.sh
13
todo.sh
@@ -389,22 +389,21 @@ replaceOrPrepend()
|
||||
else
|
||||
input=$*
|
||||
fi
|
||||
cleaninput "for sed"
|
||||
|
||||
# Retrieve existing priority and prepended date
|
||||
local -r priAndDateExpr='^\((.) \)\{0,1\}\([0-9]\{2,4\}-[0-9]\{2\}-[0-9]\{2\} \)\{0,1\}'
|
||||
priority=$(sed -e "$item!d" -e "${item}s/${priAndDateExpr}.*/\\1/" "$TODO_FILE")
|
||||
prepdate=$(sed -e "$item!d" -e "${item}s/${priAndDateExpr}.*/\\2/" "$TODO_FILE")
|
||||
priority=$(sed -e "$item!d" -e $item's/^\((.) \)\{0,1\}\([0-9]\{2,4\}-[0-9]\{2\}-[0-9]\{2\} \)\{0,1\}.*/\1/' "$TODO_FILE")
|
||||
prepdate=$(sed -e "$item!d" -e $item's/^\((.) \)\{0,1\}\([0-9]\{2,4\}-[0-9]\{2\}-[0-9]\{2\} \)\{0,1\}.*/\2/' "$TODO_FILE")
|
||||
|
||||
if [ "$prepdate" -a "$action" = "replace" ] && [ "$(echo "$input"|sed -e "s/${priAndDateExpr}.*/\\1\\2/")" ]; then
|
||||
# If the replaced text starts with a [priority +] date, it will replace
|
||||
# the existing date, too.
|
||||
if [ "$prepdate" -a "$action" = "replace" ] && [ "$(echo "$input"|sed -e 's/^\([0-9]\{2,4\}-[0-9]\{2\}-[0-9]\{2\}\)\{0,1\}.*/\1/')" ]; then
|
||||
# If the replaced text starts with a date, it will replace the existing
|
||||
# date, too.
|
||||
prepdate=
|
||||
fi
|
||||
|
||||
# Temporarily remove any existing priority and prepended date, perform the
|
||||
# change (replace/prepend) and re-insert the existing priority and prepended
|
||||
# date again.
|
||||
cleaninput "for sed"
|
||||
sed -i.bak -e "$item s/^${priority}${prepdate}//" -e "$item s|^.*|${priority}${prepdate}${input}${backref}|" "$TODO_FILE"
|
||||
if [ $TODOTXT_VERBOSE -gt 0 ]; then
|
||||
getNewtodo "$item"
|
||||
|
||||
Reference in New Issue
Block a user