fzf-vcal/src/awk/dayview.awk
2025-06-10 13:06:00 +02:00

49 lines
1.3 KiB
Awk

# 11:00|13:00|1748422800|1748430000|fpath|desc...
# 00:00|00:00|1748296800|1748383200|fpath|desc...
function allday() {
return ITALIC FAINT " (allday) " OFF $6
}
function endstoday() {
return CYAN " -- " $2 OFF ": " $6
}
function slice() {
if ($2 == "00:00")
return CYAN $1 " -- " OFF ": " $6
else
return CYAN $1 OFF " -- " CYAN $2 OFF ": " $6
}
function hrline(hour) {
print hour, "", "", "", FAINT hour ":00 ----------------------" OFF
}
function hrlines(start, stop, h, starth, stoph, tmp, i) {
starth = substr(start, 1, 2)
stoph = substr(stop, 1, 2)
tmp = substr(start, 4, 2) == "00" ? 0 : 1
for (i=h; i < starth + tmp; i++)
hrline(i)
tmp = substr(stop, 4, 2) == "00" ? 0 : 1
return stoph + tmp
}
BEGIN {
FS = "|";
daystart = 8
dayend = 18
GREEN = "\033[1;32m";
RED = "\033[1;31m";
WHITE = "\033[1;97m";
CYAN = "\033[1;36m";
ITALIC = "\033[3m";
FAINT = "\033[2m";
OFF = "\033[m";
OFS = "|"
}
$1 == "00:00" && $2 == "00:00" { print $1, $3, $4, $5, allday(); next }
$1 == "00:00" { print $1, $3, $4, $5, endstoday(); next }
$1 ~ /^[0-9]{2}:[0-9]{2}$/ {
daystart = hrlines($1, $2, daystart, starth, stoph, tmp, i)
print $1, $3, $4, $5, slice()
}
END {
hrlines(dayend":00", 0, daystart, starth, stoph, tmp, i)
}