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 | ||||
| } | ||||
| ## }}} | ||||
| ## 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 {{{ | ||||
| zstyle ':completion:*:*:task:*' verbose yes | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue