Files
gh-withzombies-hyperpowers/hooks/utils/context-query.sh
2025-11-30 09:06:38 +08:00

54 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
CONTEXT_DIR="$(dirname "$0")/../context"
LOG_FILE="$CONTEXT_DIR/edit-log.txt"
# Get files edited since timestamp
get_recent_edits() {
local since="${1:-}"
if [ ! -f "$LOG_FILE" ]; then
return 0
fi
if [ -z "$since" ]; then
cat "$LOG_FILE" 2>/dev/null || true
else
awk -v since="$since" -F '|' '$1 >= since' "$LOG_FILE" 2>/dev/null || true
fi
}
# Get unique files edited in current session
get_session_files() {
local session_start="${1:-}"
get_recent_edits "$session_start" | \
awk -F '|' '{gsub(/^[ \t]+|[ \t]+$/, "", $4); print $4}' | \
sort -u
}
# Check if specific file was edited
was_file_edited() {
local file_path="$1"
local since="${2:-}"
get_recent_edits "$since" | grep -q "$(printf '%q' "$file_path")" 2>/dev/null
}
# Get edit count by repo
get_repo_stats() {
local since="${1:-}"
get_recent_edits "$since" | \
awk -F '|' '{gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2}' | \
sort | uniq -c | sort -rn
}
# Clear log (for testing)
clear_log() {
if [ -f "$LOG_FILE" ]; then
> "$LOG_FILE"
fi
}