.shrc.d/prompt0-time.sh
8d38feea
 __prompt_time_dir=''
 [ -d "$__prompt_time_dir" ] || __prompt_time_dir="${XDG_RUNTIME_DIR:-"/var/run/user/$(id -u)"}"
 [ -d "$__prompt_time_dir" ] || __prompt_time_dir="${XDG_CACHE_HOME:-"$HOME/.cache"}"
 
 __prompt_time_file="$__prompt_time_dir/prompt_time/$$"
 
 mkdir -p "$(dirname "$__prompt_time_file")"
 
 __prompt_time_start()
 {
   date '+%s' >| "$__prompt_time_file"
 }
 
 __prompt_time_stop()
 {
   [ -r "$__prompt_time_file" ] || return 0
   __prompt_time="$(("$(date '+%s')" - "$(cat "$__prompt_time_file")"))"
   rm "$__prompt_time_file"
   [ "$__prompt_time" -gt 0 ] || return 0
   __prompt_time_d="$((__prompt_time / (24*60*60)))"
   __prompt_time_h="$((__prompt_time % (24*60*60) / (60*60)))"
   __prompt_time_m="$((__prompt_time              % (60*60) / (60)))"
   __prompt_time_s="$((__prompt_time                        % (60)))"
   __prompt_time_d="$([ "$__prompt_time_d" -eq 0 ] || printf '%02dd' "$__prompt_time_d")"
   __prompt_time_h="$([ "$__prompt_time_h" -eq 0 ] || printf '%02dh' "$__prompt_time_h")"
   __prompt_time_m="$([ "$__prompt_time_m" -eq 0 ] || printf '%02dm' "$__prompt_time_m")"
   __prompt_time_s="$([ "$__prompt_time_s" -eq 0 ] || printf '%02ds' "$__prompt_time_s")"
   printf '%s' \
     "$__prompt_time_d" \
     "$__prompt_time_h" \
     "$__prompt_time_m" \
     "$__prompt_time_s"
 }
 
 __prompt_time()
 {
   if [ "$2" ]
   then
     printf "$1" "$2"
   fi
 }