Function to resize timewarrior record
This commit is contained in:
		
							parent
							
								
									f05fb06e69
								
							
						
					
					
						commit
						d3f75c0e11
					
				
							
								
								
									
										60
									
								
								zshrc
								
								
								
								
							
							
						
						
									
										60
									
								
								zshrc
								
								
								
								
							| 
						 | 
				
			
			@ -630,6 +630,7 @@ alias tid="tiday"
 | 
			
		|||
alias tiw="tiweek"
 | 
			
		||||
alias tim="timonth"
 | 
			
		||||
alias timv="timove"
 | 
			
		||||
alias tiresize="tiduration"
 | 
			
		||||
 | 
			
		||||
## Functions
 | 
			
		||||
## Display tasks of today {{{
 | 
			
		||||
| 
						 | 
				
			
			@ -923,6 +924,65 @@ function tiend() {
 | 
			
		|||
	unset tiend_confirmation tiend_time_id tiend_time_new_end
 | 
			
		||||
}
 | 
			
		||||
## }}}
 | 
			
		||||
## Modify the duration of a time tracking {{{
 | 
			
		||||
function tiduration() {
 | 
			
		||||
 | 
			
		||||
	# Define new_duration empty by default
 | 
			
		||||
	tiduration_time_new_duration=""
 | 
			
		||||
 | 
			
		||||
	# Verify argument
 | 
			
		||||
	case "${#}" in
 | 
			
		||||
		1 )
 | 
			
		||||
			## Get the first arg as time ID
 | 
			
		||||
			tiduration_time_id="${1}"
 | 
			
		||||
			;;
 | 
			
		||||
		2 )
 | 
			
		||||
			## Get the first arg as time ID
 | 
			
		||||
			tiduration_time_id="${1}"
 | 
			
		||||
 | 
			
		||||
			## Get the second arg as new end time for this track
 | 
			
		||||
			tiduration_time_new_duration="${2}"
 | 
			
		||||
			;;
 | 
			
		||||
		* )
 | 
			
		||||
			## Ask the user to choose an ID in time tracking from the yesterday {{{
 | 
			
		||||
			timew summary from yesterday :ids || return 0
 | 
			
		||||
 | 
			
		||||
			printf '%b' "Enter the ${MAGENTAB}ID${RESET} of the time tracking to modify : "
 | 
			
		||||
			read -r tiduration_time_id
 | 
			
		||||
			## }}}
 | 
			
		||||
			;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	# If no time tracking exists with this ID, exit function {{{
 | 
			
		||||
	if ! timew summary :year :ids | grep --quiet -- " @${tiduration_time_id} "; then
 | 
			
		||||
		printf '%b' "No available time tracking in the last year with ${REDB}${tiduration_time_id}${RESET} ID."
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
	# }}}
 | 
			
		||||
 | 
			
		||||
	# Get time tracking's description from all time tracking of this year
 | 
			
		||||
	local tiduration_time_desc=$(timew summary :year :ids | sed -n "s/.*@\(${tiduration_time_id} .*\)/\1/p" | sed 's/   */ − /g')
 | 
			
		||||
 | 
			
		||||
	# Check or ask for new end time {{{
 | 
			
		||||
	if [ -z "${tiduration_time_new_duration}" ]; then
 | 
			
		||||
			printf '%b' "Enter the ${MAGENTAB}new duration${RESET} (eg. 25mins, 1hour…) for this time tracking : "
 | 
			
		||||
			read -r tiduration_time_new_duration
 | 
			
		||||
	fi
 | 
			
		||||
	# }}}
 | 
			
		||||
 | 
			
		||||
	printf '%b' "Change duration of \"${MAGENTAB}${tiduration_time_desc}${RESET}\" to ${REDB}=> ${tiduration_time_new_duration} <=${RESET} [Y/n] ? "
 | 
			
		||||
	read -r tiduration_confirmation
 | 
			
		||||
 | 
			
		||||
	# Check confirmation
 | 
			
		||||
	if printf -- '%s' "${tiduration_confirmation:=y}" | grep --quiet --word-regexp -- "y"; then
 | 
			
		||||
		timew resize @"${tiduration_time_id}" "${tiduration_time_new_duration}" || return 0
 | 
			
		||||
		printf '%b' "Duration of ${tiduration_time_desc} is now ${tiduration_time_new_duration}."
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Unset defined variables
 | 
			
		||||
	unset tiduration_confirmation tiduration_time_id tiduration_time_new_duration
 | 
			
		||||
}
 | 
			
		||||
## }}}
 | 
			
		||||
## Move a time tracking {{{
 | 
			
		||||
function timove() {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue