Mercurial
view mrjunejune/generate_resume_pdf.sh @ 254:2b6e732087ff
[ui] Add complete native component catalog
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 04 Aug 2026 15:12:09 -0700 |
| parents | 1de6f553cbc0 |
| children |
line wrap: on
line source
#!/usr/bin/env bash set -euo pipefail if [[ -n "${RUNFILES_DIR:-}" ]]; then source "$RUNFILES_DIR/bazel_tools/tools/bash/runfiles/runfiles.bash" elif [[ -n "${RUNFILES_MANIFEST_FILE:-}" ]]; then runfiles_library="$( grep -sm1 '^bazel_tools/tools/bash/runfiles/runfiles.bash ' \ "$RUNFILES_MANIFEST_FILE" | cut -d' ' -f2- )" source "$runfiles_library" elif [[ -d "$0.runfiles" ]]; then RUNFILES_DIR="$0.runfiles" export RUNFILES_DIR source "$RUNFILES_DIR/bazel_tools/tools/bash/runfiles/runfiles.bash" elif [[ -f "$0.runfiles_manifest" ]]; then RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" export RUNFILES_MANIFEST_FILE runfiles_library="$( grep -sm1 '^bazel_tools/tools/bash/runfiles/runfiles.bash ' \ "$RUNFILES_MANIFEST_FILE" | cut -d' ' -f2- )" source "$runfiles_library" else echo "Bazel runfiles are unavailable." >&2 exit 1 fi workspace="${BUILD_WORKSPACE_DIRECTORY:-}" if [[ -z "$workspace" || ! -d "$workspace/.hg" ]]; then echo "Run this target from the Zenbu workspace." >&2 exit 1 fi server="$(rlocation _main/mrjunejune/mrjunejune_server)" browser="$(rlocation playwright_chromium_linux/chrome)" runfiles_workspace="$(dirname "$(dirname "$server")")" output="$workspace/mrjunejune/src/public/resume.pdf" source_copy="$workspace/mrjunejune/src/resume.pdf" temporary_pdf="$(mktemp --suffix=.pdf)" browser_profile="$(mktemp -d)" server_pid="" cleanup() { trap - EXIT INT TERM if [[ -n "$server_pid" ]] && kill -0 "$server_pid" 2>/dev/null; then kill "$server_pid" 2>/dev/null || true wait "$server_pid" 2>/dev/null || true fi rm -f "$temporary_pdf" rm -rf "$browser_profile" } trap cleanup EXIT trap 'exit 130' INT TERM ( cd "$runfiles_workspace" exec "$server" ) & server_pid=$! for _ in $(seq 1 100); do if curl --fail --silent --max-time 1 http://127.0.0.1:6969/resume >/dev/null; then break fi if ! kill -0 "$server_pid" 2>/dev/null; then echo "Personal-site server exited before PDF generation." >&2 exit 1 fi sleep 0.1 done curl --fail --silent --max-time 1 http://127.0.0.1:6969/resume >/dev/null "$browser" \ --headless \ --no-sandbox \ --disable-gpu \ --no-pdf-header-footer \ --user-data-dir="$browser_profile" \ --print-to-pdf="$temporary_pdf" \ http://127.0.0.1:6969/resume test -s "$temporary_pdf" install -m 0644 "$temporary_pdf" "$output" install -m 0644 "$temporary_pdf" "$source_copy" echo "Updated $output"