Taskwarrior: new function to mark a task as done
This commit is contained in:
parent
d0370b62c0
commit
3e85006a6c
42
zshrc
42
zshrc
|
@ -458,6 +458,48 @@ function tadel() {
|
||||||
unset tadel_confirmation tadel_task_id
|
unset tadel_confirmation tadel_task_id
|
||||||
}
|
}
|
||||||
## }}}
|
## }}}
|
||||||
|
## Mark a task as done {{{
|
||||||
|
function tadone() {
|
||||||
|
# Verify argument
|
||||||
|
if [ "${#}" -eq 0 ]; then
|
||||||
|
## If no argument
|
||||||
|
## Ask the user to choose a task description from the last week Timewarrior activities {{{
|
||||||
|
timew summary :week :ids || return 0
|
||||||
|
|
||||||
|
printf '%b' "Enter the ${MAGENTAB}a pattern${RESET} matching the expected task to mark as complete : "
|
||||||
|
read -r tadone_task_regexp
|
||||||
|
else
|
||||||
|
## Merge all args into one var
|
||||||
|
tadone_task_regexp="${*}"
|
||||||
|
## }}}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#printf '%b' "Pattern to search a task is ${REDB}${tadone_task_regexp}${RESET}.\n"
|
||||||
|
local tadone_task_id=$(task "${tadone_task_regexp}" simpleid | grep --after-context=2 -- ID | tail --lines=1 || return 0)
|
||||||
|
|
||||||
|
# If no task with this ID exists, exit function {{{
|
||||||
|
if [ -z "${tadone_task_id}" ]; then
|
||||||
|
printf '%b' "No available task with ${REDB}${tadone_task_regexp}${RESET} pattern."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
# Get task's description
|
||||||
|
local tadone_task_desc=$(task "${tadone_task_id}" | sed -n "s/^Description *\(.*\)/\1/p")
|
||||||
|
|
||||||
|
printf '%b' "Mark the task \"${MAGENTAB}${tadone_task_id} − ${tadone_task_desc}${RESET}\" as done [Y/n] ? "
|
||||||
|
read -r tadone_confirmation
|
||||||
|
|
||||||
|
# Check confirmation
|
||||||
|
if printf -- '%s' "${tadone_confirmation:=y}" | grep --quiet --word-regexp -- "y"; then
|
||||||
|
task "${tadone_task_id}" done
|
||||||
|
printf '%b' "\"${MAGENTAB}${tadone_task_id} − ${tadone_task_desc}${RESET}\" task is now complete."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unset defined variables
|
||||||
|
unset tadone_confirmation tadone_task_regexp
|
||||||
|
}
|
||||||
|
## }}}
|
||||||
|
|
||||||
## Completion {{{
|
## Completion {{{
|
||||||
zstyle ':completion:*:*:task:*' verbose yes
|
zstyle ':completion:*:*:task:*' verbose yes
|
||||||
|
|
Loading…
Reference in New Issue