Fixes for inline css (CSSOM)

This commit is contained in:
2026-05-16 16:05:32 -07:00
parent 422994ad07
commit 40c63dc4e2
10 changed files with 301 additions and 103 deletions

View File

@@ -1,61 +1,66 @@
#!/bin/bash
#!/usr/bin/env bash
set -euo pipefail
# Podman helper for local-page-archiver with headful Chromium support.
# Podman helper for local-page-archiver worker-container runs.
# Usage:
# ./podman-run.sh archive <URL> [options]
# ./podman-run.sh headful-archive <URL> [options]
# ./podman-run.sh build
# ./podman-run.sh archive <URL> [archive CLI options]
# ./podman-run.sh vnc-archive <URL> [archive CLI options]
IMAGE_NAME="local-page-archiver"
IMAGE_NAME="${ARCHIVE_WORKER_IMAGE:-local-page-archiver:latest}"
ARCHIVE_DIR="${ARCHIVE_DIR:-$(pwd)/archives}"
build_image() {
echo "Building ${IMAGE_NAME}..."
podman build -t "${IMAGE_NAME}" .
}
run_headless() {
mkdir -p "${ARCHIVE_DIR}"
podman run --rm \
-e "ARCHIVE_PATH=/archives" \
-v "${ARCHIVE_DIR}:/archives:Z" \
"${IMAGE_NAME}" \
"$@"
ensure_image() {
if ! podman image exists "${IMAGE_NAME}"; then
build_image
fi
}
run_headful() {
mkdir -p "${ARCHIVE_DIR}"
podman run --rm \
--entrypoint sh \
-e "ARCHIVE_PATH=/archives" \
-e "DISPLAY=:99" \
-v "${ARCHIVE_DIR}:/archives:Z" \
-p "5901:5900" \
"${IMAGE_NAME}" \
-c "
apt-get update -qq && apt-get install -y -qq x11vnc xvfb >/dev/null 2>&1 &&
Xvfb :99 -screen 0 1366x768x24 >/dev/null 2>&1 &
x11vnc -display :99 -nopw -forever >/dev/null 2>&1 &
sleep 2 &&
node src/cli.mjs $(printf '%q ' "$@")
"
}
if ! podman image exists "${IMAGE_NAME}"; then
build_image
fi
case "${1:-}" in
headful-archive)
shift
# Prepend 'archive' so the user doesn't have to type it twice
set -- archive "$@"
run_headful "$@"
build)
build_image
;;
archive|help)
run_headless "$@"
archive)
shift
ensure_image
node src/container-runner.mjs archive \
--runtime podman \
--image "${IMAGE_NAME}" \
--archive-path "${ARCHIVE_DIR}" \
"$@"
;;
vnc-archive|headful-archive)
shift
ensure_image
node src/container-runner.mjs archive \
--runtime podman \
--image "${IMAGE_NAME}" \
--archive-path "${ARCHIVE_DIR}" \
--vnc \
"$@"
;;
help|"")
cat <<EOF
Usage:
./podman-run.sh build
./podman-run.sh archive <URL> [archive CLI options]
./podman-run.sh vnc-archive <URL> [archive CLI options]
Environment:
ARCHIVE_WORKER_IMAGE=${IMAGE_NAME}
ARCHIVE_DIR=${ARCHIVE_DIR}
EOF
;;
*)
run_headless "$@"
ensure_image
node src/container-runner.mjs archive \
--runtime podman \
--image "${IMAGE_NAME}" \
--archive-path "${ARCHIVE_DIR}" \
"$@"
;;
esac