2023-03-10 18:13:32 -05:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
|
|
|
# This script prepares the environment for expect scripts to be recorded in,
|
|
|
|
# executes all scripts, and copies the .cast files to our doc's asset folder.
|
|
|
|
#
|
|
|
|
# Note: A cluster is created in GCP. Therefore you are expected to be logged in
|
|
|
|
# via `gcloud` CLI. You credentials at $HOME/.config/gcloud are mounted into the
|
|
|
|
# screenrecordings container. A full script run takes ~20min.
|
|
|
|
#
|
|
|
|
|
|
|
|
docker build -t screenrecodings docker
|
|
|
|
|
|
|
|
# Create cast
|
|
|
|
docker run -it \
|
|
|
|
-v "${HOME}"/.config/gcloud:/root/.config/gcloud \
|
|
|
|
-v "$(pwd)"/recordings:/recordings \
|
|
|
|
-v "$(pwd)"/constellation:/constellation \
|
|
|
|
screenrecodings /scripts/github-readme.expect
|
|
|
|
|
|
|
|
# Fix meta data: width and height are always zero in Docker produced cast files.
|
|
|
|
# Header is the first lint of cast file in JSON format, we read, fix and write it.
|
2023-03-15 07:11:54 -04:00
|
|
|
head -n 1 recordings/github-readme.cast | yq -M '.width = 95 | .height = 17 | . + {"idle_time_limit": 0.5}' - > new_header.cast
|
|
|
|
# Does not work on MacOS due to a different sed
|
|
|
|
sed -i 's/idle_time_limit:/"idle_time_limit":/' new_header.cast
|
2023-03-10 18:13:32 -05:00
|
|
|
# Then append everything, expect first line from original cast file.
|
|
|
|
tail -n+2 recordings/github-readme.cast >> new_header.cast
|
|
|
|
|
|
|
|
# Then render cast into svg using:
|
|
|
|
# https://github.com/nbedos/termtosvg
|
2024-01-08 01:35:48 -05:00
|
|
|
python3 -m termtosvg render new_header.cast readme.svg -t window-frame.svg -D 1ms
|
2023-03-10 18:13:32 -05:00
|
|
|
|
|
|
|
# Copy and cleanup
|
|
|
|
cp readme.svg ../static/img/shell-windowframe.svg
|
|
|
|
rm readme.svg new_header.cast
|
2023-03-15 07:11:54 -04:00
|
|
|
|
|
|
|
# cleanup Constellation
|
2023-11-21 10:03:11 -05:00
|
|
|
docker run -it \
|
|
|
|
-v "${HOME}"/.config/gcloud:/root/.config/gcloud \
|
|
|
|
-v "$(pwd)"/recordings:/recordings \
|
|
|
|
-v "$(pwd)"/constellation:/constellation \
|
|
|
|
screenrecodings /scripts/terminate-cluster.expect
|