Update documentation and scripts for revision tracking and cloud-init enhancements</message>
<message>Introduce a revision tracking system across project files, allowing for easier identification of changes. Update the README files to include instructions for bumping revisions and auto-bumping on commits. Additionally, enhance cloud-init scripts with revision comments for better version control. Modify the dashboard API to improve build status management, including a forced clear option for stuck statuses, enhancing user experience and operational reliability.
This commit is contained in:
58
emmc-provisioning/scripts/bump-revision.sh
Normal file
58
emmc-provisioning/scripts/bump-revision.sh
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
# Revision: 2
|
||||
# Bumps REVISION at repo root and updates the "Revision: N" line in all tracked files.
|
||||
# Run from repo root, or use with: ./emmc-provisioning/scripts/bump-revision.sh
|
||||
# Optional: use in a pre-commit hook so every commit gets a new revision.
|
||||
|
||||
set -e
|
||||
# Script lives in emmc-provisioning/scripts/; repo root is two levels up
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
REVISION_FILE="$ROOT/REVISION"
|
||||
|
||||
# Files to update (relative to ROOT). Each must contain a line matching:
|
||||
# # Revision: N or <!-- Revision: N -->
|
||||
TRACKED=(
|
||||
emmc-provisioning/scripts/bump-revision.sh
|
||||
emmc-provisioning/scripts/pre-commit-revision.sh
|
||||
emmc-provisioning/host/build-cloudinit-image.sh
|
||||
emmc-provisioning/host/flash-emmc-on-connect.sh
|
||||
emmc-provisioning/host/run-shrink-on-host.sh
|
||||
emmc-provisioning/host/README.md
|
||||
emmc-provisioning/host/cm4-flash-trigger.sh
|
||||
emmc-provisioning/dashboard/app.py
|
||||
emmc-provisioning/dashboard/templates/index.html
|
||||
emmc-provisioning/dashboard/templates/home.html
|
||||
emmc-provisioning/dashboard/templates/cloudinit_build.html
|
||||
emmc-provisioning/dashboard/templates/admin.html
|
||||
emmc-provisioning/dashboard/templates/login.html
|
||||
emmc-provisioning/dashboard/templates/portal_files.html
|
||||
emmc-provisioning/cloud-init/first-boot.sh
|
||||
emmc-provisioning/cloud-init/first-boot.conf
|
||||
emmc-provisioning/cloud-init/start-chromium.sh
|
||||
emmc-provisioning/cloud-init/01-set-rotation-once.sh
|
||||
emmc-provisioning/cloud-init/02-set-wallpaper-once.sh
|
||||
emmc-provisioning/cloud-init/set-rotation-at-login.sh
|
||||
emmc-provisioning/cloud-init/fix-reterminal-display.sh
|
||||
emmc-provisioning/scripts/deploy-to-proxmox.sh
|
||||
emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh
|
||||
emmc-provisioning/scripts/sync-portal-files-to-lxc.sh
|
||||
README.md
|
||||
emmc-provisioning/README.md
|
||||
)
|
||||
|
||||
current=1
|
||||
[[ -f "$REVISION_FILE" ]] && current=$(awk '/^[0-9]+$/ { print $1; exit }' "$REVISION_FILE" || true)
|
||||
[[ -z "$current" ]] && current=0
|
||||
next=$((current + 1))
|
||||
echo "$next" > "$REVISION_FILE"
|
||||
|
||||
for rel in "${TRACKED[@]}"; do
|
||||
f="$ROOT/$rel"
|
||||
[[ "$rel" == "REVISION" ]] && continue
|
||||
[[ ! -f "$f" ]] && continue
|
||||
if grep -qE 'Revision: [0-9]+|<!-- Revision: [0-9]+ -->' "$f" 2>/dev/null; then
|
||||
sed -i -E 's/(Revision: )[0-9]+/\1'"$next"'/; s/(<!-- Revision: )[0-9]+( -->)/\1'"$next"'\2/' "$f"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Revision bumped to $next"
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Revision: 2
|
||||
# Deploy only the dashboard to the LXC by IP (no Proxmox host needed).
|
||||
# Uses rsync so all files (app, templates, service file, etc.) stay in sync.
|
||||
# Usage: ./deploy-dashboard-to-lxc.sh [user@lxc_ip]
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Revision: 2
|
||||
# Deploy CM4 eMMC provisioning to a Proxmox host: host scripts, udev, systemd units,
|
||||
# LXC container (dashboard), usbboot (rpiboot), and PiShrink. Uses hostname "cm4-provisioning"
|
||||
# to find the container on redeploy; creates with next available ID if not found.
|
||||
|
||||
38
emmc-provisioning/scripts/pre-commit-revision.sh
Normal file
38
emmc-provisioning/scripts/pre-commit-revision.sh
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# Revision: 2
|
||||
# Sample pre-commit hook: bump revision and update all tracked files, then stage them.
|
||||
# Install: cp emmc-provisioning/scripts/pre-commit-revision.sh .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
|
||||
# Or: ln -sf ../../emmc-provisioning/scripts/pre-commit-revision.sh .git/hooks/pre-commit
|
||||
|
||||
set -e
|
||||
ROOT="$(git rev-parse --show-toplevel)"
|
||||
cd "$ROOT"
|
||||
"$ROOT/emmc-provisioning/scripts/bump-revision.sh"
|
||||
git add REVISION
|
||||
git add emmc-provisioning/scripts/bump-revision.sh \
|
||||
emmc-provisioning/scripts/pre-commit-revision.sh \
|
||||
emmc-provisioning/host/build-cloudinit-image.sh \
|
||||
emmc-provisioning/host/flash-emmc-on-connect.sh \
|
||||
emmc-provisioning/host/run-shrink-on-host.sh \
|
||||
emmc-provisioning/host/README.md \
|
||||
emmc-provisioning/host/cm4-flash-trigger.sh \
|
||||
emmc-provisioning/dashboard/app.py \
|
||||
emmc-provisioning/dashboard/templates/index.html \
|
||||
emmc-provisioning/dashboard/templates/home.html \
|
||||
emmc-provisioning/dashboard/templates/cloudinit_build.html \
|
||||
emmc-provisioning/dashboard/templates/admin.html \
|
||||
emmc-provisioning/dashboard/templates/login.html \
|
||||
emmc-provisioning/dashboard/templates/portal_files.html \
|
||||
emmc-provisioning/cloud-init/first-boot.sh \
|
||||
emmc-provisioning/cloud-init/first-boot.conf \
|
||||
emmc-provisioning/cloud-init/start-chromium.sh \
|
||||
emmc-provisioning/cloud-init/01-set-rotation-once.sh \
|
||||
emmc-provisioning/cloud-init/02-set-wallpaper-once.sh \
|
||||
emmc-provisioning/cloud-init/set-rotation-at-login.sh \
|
||||
emmc-provisioning/cloud-init/fix-reterminal-display.sh \
|
||||
emmc-provisioning/scripts/deploy-to-proxmox.sh \
|
||||
emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh \
|
||||
emmc-provisioning/scripts/sync-portal-files-to-lxc.sh \
|
||||
README.md \
|
||||
emmc-provisioning/README.md
|
||||
exit 0
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Revision: 2
|
||||
# Sync portal (file server) content from the repo to the LXC.
|
||||
# Updates /var/lib/cm4-provisioning/portal-files/ so first-boot and the
|
||||
# dashboard /files/ serve the same scripts and assets as in the repo.
|
||||
|
||||
Reference in New Issue
Block a user