54 lines
1.1 KiB
Bash
Executable File
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
|
|
}
|