Showing
2 changed files
with
49 additions
and
23 deletions
@@ -8,44 +8,65 @@ source $0:A:h/ttyhelper.sh | @@ -8,44 +8,65 @@ source $0:A:h/ttyhelper.sh | ||
8 | function showall() { | 8 | function showall() { |
9 | [[ $# -eq 0 ]] && return 1 | 9 | [[ $# -eq 0 ]] && return 1 |
10 | 10 | ||
11 | - local T UUID OIFS WORK FIRST | 11 | + local T UUID OIFS WORK NO |
12 | 12 | ||
13 | printf "%s %s %s %s %s\n" \ | 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 | "$(underline -13 spent)" \ | 16 | "$(underline -13 spent)" \ |
17 | "$(underline -10 completed)" \ | 17 | "$(underline -10 completed)" \ |
18 | "$(underline -10 entered)" | 18 | "$(underline -10 entered)" |
19 | 19 | ||
20 | for UUID in $@ | 20 | for UUID in $@ |
21 | do | 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 | local TIME="$(formattime $4)" | 30 | local TIME="$(formattime $4)" |
31 | local PROJECT="$(task _get $UUID.project)" | 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 | "$(truncate "$(task _get $UUID.description)" 35)" \ | 35 | "$(truncate "$(task _get $UUID.description)" 35)" \ |
36 | - "$(bold "" "${TIME}")" \ | 36 | + "$(bold "13" "${TIME}")" \ |
37 | "$(todate $(task _get $UUID.end))" \ | 37 | "$(todate $(task _get $UUID.end))" \ |
38 | "$(todate $(task _get $UUID.entry))" | 38 | "$(todate $(task _get $UUID.entry))" |
39 | fi | 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 | done | 51 | done |
46 | done | 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 | function timesheet() { | 70 | function timesheet() { |
50 | local PHRASE="1-week-ago" | 71 | local PHRASE="1-week-ago" |
51 | local START="$(date +%Y-%m-%d -d ${PHRASE})" | 72 | local START="$(date +%Y-%m-%d -d ${PHRASE})" |
@@ -55,10 +76,15 @@ function timesheet() { | @@ -55,10 +76,15 @@ function timesheet() { | ||
55 | local BLOCKED="$(showall $(uuids +BLOCKED $@))" | 76 | local BLOCKED="$(showall $(uuids +BLOCKED $@))" |
56 | local BLOCKING="$(showall $(uuids +BLOCKING $@))" | 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 | printf " (generated at %s)\n\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \ | 89 | printf " (generated at %s)\n\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \ |
64 | "${TODAY}" \ | 90 | "${TODAY}" \ |
@@ -74,9 +100,9 @@ function timesheet() { | @@ -74,9 +100,9 @@ function timesheet() { | ||
74 | halfyear="entry.after:$(date -d '6 month ago' +%F)" | 100 | halfyear="entry.after:$(date -d '6 month ago' +%F)" |
75 | twoyears="entry.after:$(date -d '2 years ago' +%F)" | 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 | "$(bold "" "Summary")" \ | 104 | "$(bold "" "Summary")" \ |
79 | - "$(task rc._forcecolor=on $@ summary 2>/dev/null)" \ | 105 | + "$(task rc._forcecolor=on $@ summary 2>/dev/null|sed '/./,$!d')" \ |
80 | "$(bold "" "History")" \ | 106 | "$(bold "" "History")" \ |
81 | "$(task rc._forcecolor=on $@ ${halfyear} history 2>/dev/null)" \ | 107 | "$(task rc._forcecolor=on $@ ${halfyear} history 2>/dev/null)" \ |
82 | "$(task rc._forcecolor=on $@ ${halfyear} ghistory 2>/dev/null)" \ | 108 | "$(task rc._forcecolor=on $@ ${halfyear} ghistory 2>/dev/null)" \ |
Please
register
or
login
to post a comment