Add Last Update widget to Homepage via record-update script
record-update parses nvd diff after switch and writes latest.json; Homepage polls a local-only nginx listener and renders date/changes/ closure/kernel via a customapi widget. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
916c1d1c2d
commit
f57c6e99ec
5 changed files with 76 additions and 1 deletions
41
scripts/record-update.sh
Normal file
41
scripts/record-update.sh
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env bash
|
||||
# Parse `nvd diff <old> <new>` output and write a JSON summary
|
||||
# consumed by the Homepage dashboard's customapi widget.
|
||||
set -euo pipefail
|
||||
|
||||
OLD="${1:-}"
|
||||
NEW="${2:-/run/current-system}"
|
||||
OUT_DIR="/var/lib/homepage-updates"
|
||||
OUT_FILE="$OUT_DIR/latest.json"
|
||||
|
||||
if [ -z "$OLD" ]; then
|
||||
echo "usage: record-update <old-system> [new-system]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$OUT_DIR"
|
||||
|
||||
DIFF=$(nvd diff "$OLD" "$NEW" 2>&1 || true)
|
||||
|
||||
CHANGES=$(printf '%s\n' "$DIFF" | grep -cE '^\[[UAR][.*]\]' || true)
|
||||
CLOSURE=$(printf '%s\n' "$DIFF" | grep -oE 'disk usage [+-][0-9.]+[A-Za-z]*B?' | head -1 | sed 's/disk usage //')
|
||||
CLOSURE="${CLOSURE:-+0B}"
|
||||
|
||||
KERNEL=$(uname -r)
|
||||
DATE=$(date '+%Y-%m-%d %H:%M')
|
||||
|
||||
if [ "$CHANGES" = "0" ]; then
|
||||
LABEL="No changes"
|
||||
else
|
||||
LABEL="$CHANGES package changes"
|
||||
fi
|
||||
|
||||
cat > "$OUT_FILE.tmp" <<EOF
|
||||
{
|
||||
"date": "$DATE",
|
||||
"changes": "$LABEL",
|
||||
"closure": "$CLOSURE",
|
||||
"kernel": "$KERNEL"
|
||||
}
|
||||
EOF
|
||||
mv "$OUT_FILE.tmp" "$OUT_FILE"
|
||||
Loading…
Add table
Add a link
Reference in a new issue