Add todo.txt addons
This commit is contained in:
parent
3e0905a8dd
commit
317555179f
13 changed files with 1567 additions and 0 deletions
60
.todo.actions.d/repeat
Executable file
60
.todo.actions.d/repeat
Executable file
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash
|
||||
|
||||
action=$1
|
||||
shift
|
||||
|
||||
function usage {
|
||||
echo " Customized repeat:"
|
||||
echo " repeat ITEM "
|
||||
echo " mark an item complete then re-enter it"
|
||||
echo " repeat ITEM DAYS"
|
||||
echo " mark an item as complete then re-enter it with a date DAYS from now"
|
||||
echo " repeat ITEM +DAYS"
|
||||
echo " mark an item with a date as complete then re-enter it with a date DAYS from the due date"
|
||||
echo ""
|
||||
exit
|
||||
}
|
||||
|
||||
[ "$action" = "usage" ] && usage
|
||||
|
||||
# make sure we have an item number
|
||||
ITEM=$1
|
||||
if ! [[ "$ITEM" =~ ^[0-9]+$ ]]; then
|
||||
echo "Error! Usage:"
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
|
||||
# pull the line from the todo file
|
||||
LINE=$(sed "$ITEM!d" "$TODO_FILE")
|
||||
|
||||
if [[ "$LINE" =~ ^\([A-Z]\) ]]; then
|
||||
LINE=$(echo "$LINE" | cut -f2- -d ' ') # cut off the priority
|
||||
fi
|
||||
|
||||
if [[ "$LINE" =~ ^[0-9][0-9][0-9][0-9] ]]; then
|
||||
DATE=$(echo "$LINE" | cut -f1 -d ' ') # identify the date
|
||||
LINE=$(echo "$LINE" | cut -f2- -d ' ') # cut off the date
|
||||
else
|
||||
DATE=""
|
||||
fi
|
||||
|
||||
DAYS=$2
|
||||
if [[ "$DAYS" != "" ]]; then
|
||||
if [[ $DAYS == \+* ]]; then
|
||||
if [[ "$DATE" != "" ]]; then
|
||||
# increase the due date
|
||||
DATE=`date -d $DATE" "$DAYS" days" +%Y-%m-%d`
|
||||
fi
|
||||
elif [[ $DAYS == [0-9]* ]]; then
|
||||
# make new date relative from now
|
||||
DATE=`date -d $DAYS" days" +%Y-%m-%d`
|
||||
fi
|
||||
LINE=$DATE" "$LINE # and append to the line
|
||||
fi
|
||||
|
||||
if [[ "$LINE" != "" ]] ; then
|
||||
$DO && "$TODO_SH" command do "$ITEM"
|
||||
$DO && "$TODO_SH" command add "$LINE"
|
||||
fi
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue