45 lines
1.2 KiB
Bash
45 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
# Vault statistics: note counts by folder, recent activity
|
|
# Usage: vault-stats
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
VAULT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
|
echo "=== Vault Statistics ==="
|
|
echo ""
|
|
|
|
dirs=(
|
|
"00-Inbox"
|
|
"01-Projects"
|
|
"02-Areas"
|
|
"03-Resources"
|
|
"04-Archive"
|
|
"05-People"
|
|
"06-Meetings"
|
|
"07-Daily"
|
|
"MOC"
|
|
"Templates"
|
|
"Meta"
|
|
)
|
|
|
|
for dir in "${dirs[@]}"; do
|
|
if [[ -d "$VAULT_DIR/$dir" ]]; then
|
|
count=$(find "$VAULT_DIR/$dir" -name "*.md" -not -path "*/.*" 2>/dev/null | wc -l | tr -d ' ')
|
|
printf "%-20s %s notes\n" "$dir/" "$count"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "=== Recent Activity (last 24h) ==="
|
|
find "$VAULT_DIR" -name "*.md" -not -path "*/.*" -not -path "*/My-Brain-Is-Full-Crew/*" -mmin -1440 2>/dev/null | while read -r f; do
|
|
mod=$(stat -f "%Sm" -t "%Y-%m-%d %H:%M" "$f" 2>/dev/null || stat -c "%y" "$f" 2>/dev/null | cut -c1-16 || echo "?")
|
|
rel="${f#$VAULT_DIR/}"
|
|
echo " $mod $rel"
|
|
done | sort -r | head -20
|
|
|
|
echo ""
|
|
echo "=== Total ==="
|
|
total=$(find "$VAULT_DIR" -name "*.md" -not -path "*/.*" -not -path "*/My-Brain-Is-Full-Crew/*" 2>/dev/null | wc -l | tr -d ' ')
|
|
echo "$total notes in vault"
|