Showing
2 changed files
with
49 additions
and
23 deletions
| ... | ... | @@ -8,44 +8,65 @@ source $0:A:h/ttyhelper.sh |
| 8 | 8 | function showall() { |
| 9 | 9 | [[ $# -eq 0 ]] && return 1 |
| 10 | 10 | |
| 11 | - local T UUID OIFS WORK FIRST | |
| 11 | + local T UUID OIFS WORK NO | |
| 12 | 12 | |
| 13 | 13 | printf "%s %s %s %s %s\n" \ |
| 14 | - "$(underline -16 project)" \ | |
| 15 | - "$(underline -35 description)" \ | |
| 14 | + "$(underline -10 project)" \ | |
| 15 | + "$(underline -33 description)" \ | |
| 16 | 16 | "$(underline -13 spent)" \ |
| 17 | 17 | "$(underline -10 completed)" \ |
| 18 | 18 | "$(underline -10 entered)" |
| 19 | 19 | |
| 20 | 20 | for UUID in $@ |
| 21 | 21 | do |
| 22 | - FIRST=true | |
| 22 | + NO=1 | |
| 23 | 23 | |
| 24 | - flattened_work ${UUID}|\ | |
| 25 | - jq -M -r 'map([.[]]|@sh)|join("\n")'|\ | |
| 26 | - while read WORK; do | |
| 27 | - eval set -- ${WORK} | |
| 24 | + WORK="$(flattened_work ${UUID}|jq -M -r 'map([.[]]|@sh)|join("\n")')" | |
| 25 | + UNITS=$(echo ${WORK}|wc -l) | |
| 26 | + echo "${WORK}"|while read W; do | |
| 27 | + eval set -- ${W} | |
| 28 | 28 | |
| 29 | - if ${FIRST}; then | |
| 29 | + if [[ ${NO} -eq 1 ]]; then | |
| 30 | 30 | local TIME="$(formattime $4)" |
| 31 | 31 | local PROJECT="$(task _get $UUID.project)" |
| 32 | 32 | |
| 33 | - printf "%-16s %-35s %13s %-10s %-10s\n" \ | |
| 34 | - "$(truncate "${PROJECT:-(none)}" 16)" \ | |
| 33 | + printf "%-10.10s %-33.33s %s %-10.10s %-10.10s\n" \ | |
| 34 | + "$(truncate "${PROJECT:-(none)}" 12)" \ | |
| 35 | 35 | "$(truncate "$(task _get $UUID.description)" 35)" \ |
| 36 | - "$(bold "" "${TIME}")" \ | |
| 36 | + "$(bold "13" "${TIME}")" \ | |
| 37 | 37 | "$(todate $(task _get $UUID.end))" \ |
| 38 | 38 | "$(todate $(task _get $UUID.entry))" |
| 39 | 39 | fi |
| 40 | 40 | |
| 41 | - printf "%50s: %14s\n" \ | |
| 42 | - "$(date -u -d "$1" +%c)" \ | |
| 43 | - "$(formattime $2)" | |
| 44 | - FIRST=false | |
| 41 | + if [[ ${NO} -eq ${UNITS} ]]; then | |
| 42 | + printf "└─ %s %13.13s\n" \ | |
| 43 | + "$(timestring "$1" "$2")" \ | |
| 44 | + "$(formattime $2)" | |
| 45 | + else | |
| 46 | + printf "├─ %s %13.13s\n" \ | |
| 47 | + "$(timestring "$1" "$2")" \ | |
| 48 | + "$(formattime $2)" | |
| 49 | + fi | |
| 50 | + NO=$((NO+1)) | |
| 45 | 51 | done |
| 46 | 52 | done |
| 47 | 53 | } |
| 48 | 54 | |
| 55 | +function timestring() { | |
| 56 | + local END="$1" | |
| 57 | + local DUR="$2" | |
| 58 | + local FORMAT="%d.%m.%Y %H:%M:%S" | |
| 59 | + | |
| 60 | + eval set -- ${DUR//:/ } | |
| 61 | + | |
| 62 | + local START=$(date -u -d \ | |
| 63 | + "${END}-${1}days-${2}hours-${3}minutes-${4}seconds" \ | |
| 64 | + +%Y-%m-%dT%H:%M:%SZ) | |
| 65 | + printf "%s - %s" \ | |
| 66 | + "$(date -d "${START}" +${FORMAT})" \ | |
| 67 | + "$(date -d "${END}" +${FORMAT})" | |
| 68 | +} | |
| 69 | + | |
| 49 | 70 | function timesheet() { |
| 50 | 71 | local PHRASE="1-week-ago" |
| 51 | 72 | local START="$(date +%Y-%m-%d -d ${PHRASE})" |
| ... | ... | @@ -55,10 +76,15 @@ function timesheet() { |
| 55 | 76 | local BLOCKED="$(showall $(uuids +BLOCKED $@))" |
| 56 | 77 | local BLOCKING="$(showall $(uuids +BLOCKING $@))" |
| 57 | 78 | |
| 58 | - DONE="${DONE:+${DONE}${NL}}" | |
| 59 | - UPCOMING="${UPCOMING:+${UPCOMING}${NL}}" | |
| 60 | - BLOCKED="${BLOCKED:+${BLOCKED}${NL}}" | |
| 61 | - BLOCKING="${BLOCKING:+${BLOCKING}${NL}}" | |
| 79 | + DONE="${DONE:-No tasks}" | |
| 80 | + UPCOMING="${UPCOMING:-No tasks}" | |
| 81 | + BLOCKED="${BLOCKED:-No tasks}" | |
| 82 | + BLOCKING="${BLOCKING:-No tasks}" | |
| 83 | + | |
| 84 | + DONE="${DONE}${NL}" | |
| 85 | + UPCOMING="${UPCOMING}${NL}" | |
| 86 | + BLOCKED="${BLOCKED}${NL}" | |
| 87 | + BLOCKING="${BLOCKING}${NL}" | |
| 62 | 88 | |
| 63 | 89 | printf " (generated at %s)\n\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \ |
| 64 | 90 | "${TODAY}" \ |
| ... | ... | @@ -74,9 +100,9 @@ function timesheet() { |
| 74 | 100 | halfyear="entry.after:$(date -d '6 month ago' +%F)" |
| 75 | 101 | twoyears="entry.after:$(date -d '2 years ago' +%F)" |
| 76 | 102 | |
| 77 | - printf "%s%s\n\n%s%s\n%s\n\n%s\n\n%s\n" \ | |
| 103 | + printf "%s\n%s\n\n%s%s\n%s\n\n%s\n\n%s\n" \ | |
| 78 | 104 | "$(bold "" "Summary")" \ |
| 79 | - "$(task rc._forcecolor=on $@ summary 2>/dev/null)" \ | |
| 105 | + "$(task rc._forcecolor=on $@ summary 2>/dev/null|sed '/./,$!d')" \ | |
| 80 | 106 | "$(bold "" "History")" \ |
| 81 | 107 | "$(task rc._forcecolor=on $@ ${halfyear} history 2>/dev/null)" \ |
| 82 | 108 | "$(task rc._forcecolor=on $@ ${halfyear} ghistory 2>/dev/null)" \ | ... | ... |
Please
register
or
login
to post a comment