50 lines
1.7 KiB
Bash
Executable file
50 lines
1.7 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# format zeit data for easy transferrence to daptiv
|
|
# Derek Stevens <nilix@nilfm.cc>
|
|
# MIT License
|
|
|
|
if [ "$1" = "--help" ]; then
|
|
echo "usage:"
|
|
echo " $0 WEEKS_AGO_START=1 WEEKS_AGO_END=1"
|
|
echo " Print report of tracked time for the given weeks to stdout"
|
|
exit 1
|
|
fi
|
|
|
|
weeks_start=${1:-1}
|
|
weeks_end=${2:-1}
|
|
|
|
while [ ${weeks_start} -ge ${weeks_end} ]; do
|
|
start=$(date -Is --date="0:00 Sat ${weeks_start} weeks ago")
|
|
end=$(date -Is --date="23:59 Fri $((weeks_start - 1)) weeks ago")
|
|
|
|
echo "week starting ${start}"
|
|
zeit list --since ${start} --until ${end} --total --no-colors --decimal | tail -n2
|
|
|
|
i=${weeks_start}
|
|
oldifs=${IFS}
|
|
for d in Sat Sun Mon Tue Wed Thu Fri; do
|
|
echo "${d}"
|
|
[ "${d}" = $(date +"%a") ] && [ ${weeks_start} -eq 1 ] && i=$((i-1))
|
|
dayStart=$(date -Is --date="00:00 ${d} ${i} weeks ago")
|
|
dayEnd=$(date -Is --date="23:59 ${d} ${i} weeks ago")
|
|
IFS="
|
|
"
|
|
for p in $(zeit list --since ${dayStart} --until ${dayEnd} --only-projects-and-tasks --no-colors | grep ◆ | awk '{for (i=2; i<NF; i++) printf $i " "; print $NF;}'); do
|
|
echo "\t${p}:"
|
|
|
|
|
|
ntasks=1
|
|
while read task; do
|
|
echo "\t\t${task} $(zeit list --since ${dayStart} --until ${dayEnd} --project ${p} --decimal | awk '{print $(NF-1) "\n";}' | head -n${ntasks} | tail -n1)"
|
|
ntasks=$((ntasks+1))
|
|
done << EOF
|
|
$(zeit list --since ${dayStart} --until ${dayEnd} --project ${p} --decimal | awk '{for (i=2; i<NF; i++) printf $i " "; print $NF;}' | awk -F' on' '{print $1 "\n"}')
|
|
EOF
|
|
echo "\t\t$(zeit list --since ${dayStart} --until ${dayEnd} --project ${p} --total --decimal | tail -n2 | cut -f2- -d ' ')"
|
|
done
|
|
|
|
IFS=${oldifs}
|
|
done
|
|
weeks_start=$((weeks_start-1))
|
|
done
|