From 7c6de7e19cfc67ae98ce9efff174bf403cd3e534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=84min=20Baumeler?= Date: Sat, 28 Jun 2025 13:07:42 +0200 Subject: [PATCH] debugging and improved parse awk-script call for speed --- src/sh/load.sh | 4 ++++ src/sh/misc.sh | 8 ++++++++ src/sh/view.sh | 16 ++++++++++------ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/sh/load.sh b/src/sh/load.sh index 02705e8..d970736 100644 --- a/src/sh/load.sh +++ b/src/sh/load.sh @@ -36,6 +36,10 @@ __refresh_data() { WEEKLY_DATA_FILE=$(mktemp) trap 'rm -f "$WEEKLY_DATA_FILE"' EXIT INT fi + debug "__refresh_data(): going to load approx data" __load_approx_data >"$APPROX_DATA_FILE" + debug "__refresh_data(): approx data loaded" + debug "__refresh_data(): going to load weeks" __load_weeks >"$WEEKLY_DATA_FILE" + debug "__refresh_data(): weeks loaded" } diff --git a/src/sh/misc.sh b/src/sh/misc.sh index 38b233e..c68129b 100644 --- a/src/sh/misc.sh +++ b/src/sh/misc.sh @@ -6,6 +6,14 @@ err() { echo "❌ $1" >/dev/tty } +# debug() +# Pring debug message to fzf-vcal.debug +# +# @input $1: Debug message +debug() { + echo "$(date +"%D %T.%N"): $1" >>"fzf-vcal.debug" +} + # Print date or datetime in a human and machine readable form. # # @input $1: Seconds since epoch diff --git a/src/sh/view.sh b/src/sh/view.sh index 23fc7fd..2f5c320 100644 --- a/src/sh/view.sh +++ b/src/sh/view.sh @@ -77,21 +77,22 @@ __view_day() { # This function prints the view for the week that contains the day specified in `$DISPLAY_DATE`. __view_week() { + debug "__view_week(): Enter" weeknr=$(date -d "$DISPLAY_DATE" +"%G:%V:") files=$(grep "^$weeknr" "$WEEKLY_DATA_FILE" | cut -f 2) dayofweek=$(date -d "$DISPLAY_DATE" +"%u") delta=$((1 - dayofweek)) startofweek=$(date -d "$DISPLAY_DATE -$delta days" +"%D") # loop over files + debug "__view_week(): loop over files" sef=$({ - set -- $files - for file in "$@"; do - file="$ROOT/$file" + printf "%s" "$files" | xargs -d " " -I {} -P0 \ awk \ - -v collection_labels="$COLLECTION_LABELS" \ - "$AWK_PARSE" "$file" - done + -v collection_labels="$COLLECTION_LABELS" \ + "$AWK_PARSE" "$ROOT/{}" }) + debug "__view_week(): loop over files ended" + debug "__view_week(): prepare week view" if [ -n "$sef" ]; then sef=$(echo "$sef" | while IFS= read -r line; do set -- $line @@ -134,6 +135,8 @@ __view_week() { done done) fi + debug "__view_week(): prepare week view ended" + debug "__view_week(): generate week view" sef=$({ echo "$sef" seq 0 7 @@ -145,6 +148,7 @@ __view_week() { -v style_summary="$STYLE_WV_SUMMARY" \ -v style_time="$STYLE_WV_TIME" \ "$AWK_WEEKVIEW" + debug "__view_week(): generate week view ended" } # This function prints all entries.