70 lines
2.0 KiB
Bash
Executable File
70 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Record Loki Mode demo with asciinema
|
|
# Usage: ./demo/record-demo.sh [simple-todo|full-stack]
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
DEMO_TYPE="${1:-simple-todo}"
|
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
|
|
|
# Ensure recordings directory exists
|
|
mkdir -p "$SCRIPT_DIR/recordings"
|
|
|
|
# Output file
|
|
OUTPUT_FILE="$SCRIPT_DIR/recordings/loki-demo-$DEMO_TYPE-$TIMESTAMP.cast"
|
|
|
|
# Check for asciinema
|
|
ASCIINEMA_PATH=""
|
|
if command -v asciinema &> /dev/null; then
|
|
ASCIINEMA_PATH="asciinema"
|
|
elif [ -f "$PROJECT_DIR/benchmarks/venv/bin/asciinema" ]; then
|
|
ASCIINEMA_PATH="$PROJECT_DIR/benchmarks/venv/bin/asciinema"
|
|
else
|
|
echo "Error: asciinema not found"
|
|
echo "Install with: pip install asciinema"
|
|
echo "Or use the venv: source benchmarks/venv/bin/activate"
|
|
exit 1
|
|
fi
|
|
|
|
echo "============================================"
|
|
echo " Loki Mode Demo Recording"
|
|
echo "============================================"
|
|
echo ""
|
|
echo "Demo type: $DEMO_TYPE"
|
|
echo "Output file: $OUTPUT_FILE"
|
|
echo "Asciinema: $ASCIINEMA_PATH"
|
|
echo ""
|
|
echo "Tips for recording:"
|
|
echo " - Speak clearly if adding live narration"
|
|
echo " - Pause at key moments"
|
|
echo " - Type deliberately (viewers need to follow)"
|
|
echo ""
|
|
echo "Press Enter to start recording..."
|
|
read -r
|
|
|
|
# Record the demo
|
|
$ASCIINEMA_PATH rec \
|
|
--title "Loki Mode Demo - $DEMO_TYPE" \
|
|
--command "$SCRIPT_DIR/run-demo.sh $DEMO_TYPE" \
|
|
--idle-time-limit 3 \
|
|
"$OUTPUT_FILE"
|
|
|
|
echo ""
|
|
echo "============================================"
|
|
echo " Recording Complete"
|
|
echo "============================================"
|
|
echo ""
|
|
echo "Saved to: $OUTPUT_FILE"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " 1. Play back: $ASCIINEMA_PATH play $OUTPUT_FILE"
|
|
echo " 2. Upload: $ASCIINEMA_PATH upload $OUTPUT_FILE"
|
|
echo " 3. Convert to GIF: agg $OUTPUT_FILE demo.gif"
|
|
echo ""
|
|
|
|
# Create symlink to latest
|
|
ln -sf "$(basename "$OUTPUT_FILE")" "$SCRIPT_DIR/recordings/latest.cast"
|
|
echo "Latest recording linked to: $SCRIPT_DIR/recordings/latest.cast"
|