cleand and with-nth
This commit is contained in:
parent
6973fb9f04
commit
aaf3c56565
@ -48,7 +48,7 @@ function title(start, summary) {
|
|||||||
depth = split(FILENAME, path, "/");
|
depth = split(FILENAME, path, "/");
|
||||||
collection = depth > 1 ? path[depth-1] : "";
|
collection = depth > 1 ? path[depth-1] : "";
|
||||||
collection = collection in collection2label ? collection2label[collection] : collection;
|
collection = collection in collection2label ? collection2label[collection] : collection;
|
||||||
return FAINT "~ " collection " " gensub(/^[^0-9]*([0-9]{4})([0-9]{2}).*$/, "\\1-\\2", "1", start) " " summary " ;" start OFF
|
return FAINT "~ " collection " " gensub(/^[^0-9]*([0-9]{4})([0-9]{2}).*$/, "\\1-\\2", "1", start) " " summary OFF
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
@ -69,7 +69,7 @@ BEGIN {
|
|||||||
OFF = "\033[m";
|
OFF = "\033[m";
|
||||||
}
|
}
|
||||||
BEGINFILE { inside = 0; rs = 0; dur = 0; summary = ""; start = "ERROR"; end = "ERROR" }
|
BEGINFILE { inside = 0; rs = 0; dur = 0; summary = ""; start = "ERROR"; end = "ERROR" }
|
||||||
/^END:VEVENT/ { print start, dur ? start " " end : end, title(start, summary), fn(FILENAME, n, a); nextfile }
|
/^END:VEVENT/ { print "~", start, dur ? start " " end : end, title(start, summary), fn(FILENAME, n, a); nextfile }
|
||||||
/^DTSTART/ && inside { start = parse( dt) }
|
/^DTSTART/ && inside { start = parse( dt) }
|
||||||
/^DTEND/ && inside { end = parse( dt) }
|
/^DTEND/ && inside { end = parse( dt) }
|
||||||
/^DURATION/ && inside { end = parse_duration( dt, dta, i, n, a, seps); dur = 1 }
|
/^DURATION/ && inside { end = parse_duration( dt, dta, i, n, a, seps); dur = 1 }
|
||||||
|
@ -11,7 +11,7 @@ NR == FNR {
|
|||||||
if (from[FNR] > to[FNR])
|
if (from[FNR] > to[FNR])
|
||||||
print "FNR", FNR, ":", from[FNR],"-",to[FNR], " ",$0;
|
print "FNR", FNR, ":", from[FNR],"-",to[FNR], " ",$0;
|
||||||
for(i=from[FNR]; i<=to[FNR]; i++) {
|
for(i=from[FNR]; i<=to[FNR]; i++) {
|
||||||
week[i] = week[i] ? week[i] ";" $4 : $4
|
week[i] = week[i] " " $5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END { for (i in week) print i, week[i]; }
|
END { for (i in week) print i week[i]; }
|
||||||
|
@ -8,12 +8,13 @@ BEGIN {
|
|||||||
CYAN = "\033[1;36m";
|
CYAN = "\033[1;36m";
|
||||||
FAINT = "\033[2m";
|
FAINT = "\033[2m";
|
||||||
OFF = "\033[m";
|
OFF = "\033[m";
|
||||||
|
OFS = "|"
|
||||||
}
|
}
|
||||||
/^[0-7] 00:00 -- 00:00/ { dayline = dayline " " c(); next }
|
/^[0-7] 00:00 -- 00:00/ { dayline = dayline " " c(); next }
|
||||||
/^[0-7] 00:00 -- / { dayline = dayline " <-|" $4 " " c(); next }
|
/^[0-7] 00:00 -- / { dayline = dayline " <-|" $4 " " c(); next }
|
||||||
/^[0-7] [0-9]{2}:[0-9]{2} -- 00:00/ { dayline = dayline " " $2 "|-> " c(); next }
|
/^[0-7] [0-9]{2}:[0-9]{2} -- 00:00/ { dayline = dayline " " $2 "|-> " c(); next }
|
||||||
/^[0-7] [0-9]{2}:[0-9]{2} -- [0-9]{2}:[0-9]{2}/ { dayline = dayline " " $2 " - " $4 " " c(); next }
|
/^[0-7] [0-9]{2}:[0-9]{2} -- [0-9]{2}:[0-9]{2}/ { dayline = dayline " " $2 " - " $4 " " c(); next }
|
||||||
/^[0-7]$/ && dayline { print dayline " ;" startofweek " +" $0 " days"; }
|
/^[0-7]$/ && dayline { print "+", startofweek " +" $0 " days", "", dayline; }
|
||||||
/^[0-7]$/ {
|
/^[0-7]$/ {
|
||||||
cmd = "date -d '" startofweek " +" $0 " days' +\"%a %e %b %Y\"";
|
cmd = "date -d '" startofweek " +" $0 " days' +\"%a %e %b %Y\"";
|
||||||
cmd | getline dayline;
|
cmd | getline dayline;
|
||||||
|
39
src/main.sh
39
src/main.sh
@ -73,13 +73,6 @@ EOF
|
|||||||
)
|
)
|
||||||
export AWK_PARSE
|
export AWK_PARSE
|
||||||
|
|
||||||
AWK_WEEKS=$(
|
|
||||||
cat <<'EOF'
|
|
||||||
@@include src/awk/weeks.awk
|
|
||||||
EOF
|
|
||||||
)
|
|
||||||
export AWK_WEEKS
|
|
||||||
|
|
||||||
AWK_WEEKVIEW=$(
|
AWK_WEEKVIEW=$(
|
||||||
cat <<'EOF'
|
cat <<'EOF'
|
||||||
@@include src/awk/weekview.awk
|
@@include src/awk/weekview.awk
|
||||||
@ -100,7 +93,7 @@ __load_approx_data() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
__load_weeks() {
|
__load_weeks() {
|
||||||
dates=$(awk -F'|' '{ print $1; print $2 }' "$APPROX_DATA_FILE")
|
dates=$(awk -F'|' '{ print $2; print $3 }' "$APPROX_DATA_FILE")
|
||||||
file_dates=$(mktemp)
|
file_dates=$(mktemp)
|
||||||
echo "$dates" | date --file="/dev/stdin" +"%s" >"$file_dates"
|
echo "$dates" | date --file="/dev/stdin" +"%s" >"$file_dates"
|
||||||
awk "$AWK_MERGE" "$file_dates" "$APPROX_DATA_FILE"
|
awk "$AWK_MERGE" "$file_dates" "$APPROX_DATA_FILE"
|
||||||
@ -110,13 +103,12 @@ __load_weeks() {
|
|||||||
__list() {
|
__list() {
|
||||||
weeknr=$(date -d "$DISPLAY_DATE" +"%s")
|
weeknr=$(date -d "$DISPLAY_DATE" +"%s")
|
||||||
weeknr=$(((weeknr - 259200) / 604800)) # shift, because epoch origin is a Thursday
|
weeknr=$(((weeknr - 259200) / 604800)) # shift, because epoch origin is a Thursday
|
||||||
files=$(grep "^$weeknr " "$WEEKLY_DATA_FILE" | cut -d " " -f 2)
|
files=$(grep "^$weeknr " "$WEEKLY_DATA_FILE" | cut -d " " -f 2-)
|
||||||
dayofweek=$(date -d "$DISPLAY_DATE" +"%u")
|
dayofweek=$(date -d "$DISPLAY_DATE" +"%u")
|
||||||
delta=$((1 - dayofweek))
|
delta=$((1 - dayofweek))
|
||||||
startofweek=$(date -d "$DISPLAY_DATE -$delta days" +"%D")
|
startofweek=$(date -d "$DISPLAY_DATE -$delta days" +"%D")
|
||||||
# loop over files
|
# loop over files
|
||||||
sef=$({
|
sef=$({
|
||||||
IFS=';'
|
|
||||||
set -- $files
|
set -- $files
|
||||||
for file in "$@"; do
|
for file in "$@"; do
|
||||||
file="$ROOT/$file"
|
file="$ROOT/$file"
|
||||||
@ -166,13 +158,11 @@ __list() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ -z "${APPROX_DATA_FILE:-}" ]; then
|
if [ -z "${APPROX_DATA_FILE:-}" ]; then
|
||||||
echo "GOING TO LOAD"
|
|
||||||
APPROX_DATA_FILE=$(mktemp)
|
APPROX_DATA_FILE=$(mktemp)
|
||||||
__load_approx_data >"$APPROX_DATA_FILE"
|
__load_approx_data >"$APPROX_DATA_FILE"
|
||||||
export APPROX_DATA_FILE
|
export APPROX_DATA_FILE
|
||||||
fi
|
fi
|
||||||
if [ -z "${WEEKLY_DATA_FILE:-}" ]; then
|
if [ -z "${WEEKLY_DATA_FILE:-}" ]; then
|
||||||
echo "GOING TO LOAD WD"
|
|
||||||
WEEKLY_DATA_FILE=$(mktemp)
|
WEEKLY_DATA_FILE=$(mktemp)
|
||||||
__load_weeks >"$WEEKLY_DATA_FILE"
|
__load_weeks >"$WEEKLY_DATA_FILE"
|
||||||
export WEEKLY_DATA_FILE
|
export WEEKLY_DATA_FILE
|
||||||
@ -188,7 +178,8 @@ DISPLAY_DATE_PREV=$(date -d "$DISPLAY_DATE -1 week" +"%D")
|
|||||||
DISPLAY_DATE_NEXT=$(date -d "$DISPLAY_DATE +1 week" +"%D")
|
DISPLAY_DATE_NEXT=$(date -d "$DISPLAY_DATE +1 week" +"%D")
|
||||||
|
|
||||||
selection=$( (
|
selection=$( (
|
||||||
cut -d '|' -f 3 "$APPROX_DATA_FILE"
|
#cut -d '|' -f 3 "$APPROX_DATA_FILE"
|
||||||
|
cat "$APPROX_DATA_FILE"
|
||||||
yes " " | head -n 50
|
yes " " | head -n 50
|
||||||
__list
|
__list
|
||||||
) |
|
) |
|
||||||
@ -197,6 +188,9 @@ selection=$( (
|
|||||||
--no-sort \
|
--no-sort \
|
||||||
--no-hscroll \
|
--no-hscroll \
|
||||||
--ellipsis='' \
|
--ellipsis='' \
|
||||||
|
--delimiter='|' \
|
||||||
|
--with-nth='{4}' \
|
||||||
|
--accept-nth=1,2,3,5 \
|
||||||
--ansi \
|
--ansi \
|
||||||
--no-clear \
|
--no-clear \
|
||||||
--bind="ctrl-p:become($0 --date '$DISPLAY_DATE_PREV')" \
|
--bind="ctrl-p:become($0 --date '$DISPLAY_DATE_PREV')" \
|
||||||
@ -208,16 +202,15 @@ if [ -z "$selection" ]; then
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$selection" in
|
sign=$(echo "$selection" | cut -d '|' -f 1)
|
||||||
"~"*)
|
startdate=$(echo "$selection" | cut -d '|' -f 2)
|
||||||
start=$(echo "$selection" | rev | cut -d';' -f 1 | rev)
|
endate=$(echo "$selection" | cut -d '|' -f 3)
|
||||||
exec $0 --date "$start"
|
files=$(echo "$selection" | cut -d '|' -f 4)
|
||||||
;;
|
if [ "$sign" = "~" ]; then
|
||||||
*)
|
exec $0 --date "$startdate"
|
||||||
day=$(echo "$selection" | rev | cut -d';' -f 1 | rev)
|
else
|
||||||
exec $0 --day "$day"
|
exec $0 --day "$startdate"
|
||||||
;;
|
fi
|
||||||
esac
|
|
||||||
echo "Going to end..."
|
echo "Going to end..."
|
||||||
echo "$selection"
|
echo "$selection"
|
||||||
echo "STOPPING NOW"
|
echo "STOPPING NOW"
|
||||||
|
Loading…
Reference in New Issue
Block a user