Replaces the placeholder shell with a sidebar app in the web Clipbin's look: a session library, a session timeline (footage, missing and cleaned-up spans, bookmarks, a draggable clip selection exported on keyframes), clips and settings. Geist Mono and Lucide icons are embedded. The core gains the library model and formatting; sample data is opt-in for interface work, and scripts/rig/screenshot-ui.sh captures each screen headlessly.
41 lines
1.5 KiB
Bash
Executable File
41 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Screenshots each Clipbin screen in the headless rig, for reviewing the
|
|
# interface on machines without a display.
|
|
#
|
|
# scripts/rig/screenshot-ui.sh [output-dir] [screen...]
|
|
#
|
|
# Screens: sessions, session, clips, settings, failed, empty. Uses the sample
|
|
# library (CLIPBIN_SAMPLE_LIBRARY) except for "empty".
|
|
set -euo pipefail
|
|
|
|
repo="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
out="${1:-${TMPDIR:-/tmp}/clipbin-screens}"
|
|
shift || true
|
|
screens=("$@")
|
|
[[ ${#screens[@]} -eq 0 ]] && screens=(sessions session clips settings failed empty)
|
|
mkdir -p "${out}"
|
|
|
|
cargo build --locked -p clipbin-desktop --manifest-path "${repo}/Cargo.toml"
|
|
app="${repo}/target/debug/clipbin-desktop"
|
|
|
|
for screen in "${screens[@]}"; do
|
|
env=(CLIPBIN_SAMPLE_LIBRARY=1)
|
|
case "${screen}" in
|
|
sessions) ;;
|
|
session) env+=(CLIPBIN_ROUTE=session:2) ;;
|
|
clips) env+=(CLIPBIN_ROUTE=clips) ;;
|
|
settings) env+=(CLIPBIN_ROUTE=settings) ;;
|
|
failed) env+=(CLIPBIN_SAMPLE_STATUS=failed) ;;
|
|
empty) env=() ;;
|
|
*) echo "unknown screen ${screen}" >&2; exit 2 ;;
|
|
esac
|
|
CLIPBIN_RIG_WIDTH="${CLIPBIN_RIG_WIDTH:-1600}" CLIPBIN_RIG_HEIGHT="${CLIPBIN_RIG_HEIGHT:-1000}" \
|
|
"${repo}/scripts/rig/headless.sh" bash -c "
|
|
kill \$(cat \"\${CLIPBIN_RIG_DIR}/game.pid\")
|
|
env ${env[*]} '${app}' > '${out}/${screen}.log' 2>&1 &
|
|
sleep 3
|
|
grim '${out}/${screen}.png'
|
|
kill %1" 2> /dev/null
|
|
echo "${out}/${screen}.png"
|
|
done
|