commit 5daa80a1252432f205ad8b2a556ed28dd75a6979
parent 4c5c0cfa537484edb4c719c5766e30be713e21f9
Author: Georges Dupéron <georges.duperon@gmail.com>
Date: Sat, 7 Jul 2018 15:47:54 +0200
Fixed typo (missing "test" command); moved screenshot loop to a separate script
Diffstat:
3 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/example-os/Makefile b/example-os/Makefile
@@ -43,4 +43,4 @@ test: $(tests) Makefile
.PHONY: $(tests)
$(tests): $(os_filename) ../deploy-screenshots Makefile
- (cd .. && ./utils/gui-wrapper.sh 800x600x24 ./$@.sh example-os/$<)
+ cd .. && ./utils/gui-wrapper.sh 800x600x24 ./$@.sh example-os/$<
diff --git a/utils/gui-wrapper.sh b/utils/gui-wrapper.sh
@@ -9,13 +9,19 @@ bg="$(mktemp --suffix='.png')"
anim="$(mktemp -d)"
# Create solid black background
-convert -size "$(echo "$resolution" | cut -d 'x' -f1-2)" tile:pattern:checkerboard "$bg"
+convert -size "$(echo "$resolution" | cut -d 'x' -f1-2)" \
+ tile:pattern:checkerboard \
+ -auto-level +level-colors 'gray(192),gray(128)' \
+ "$bg"
-xvfb-run -a --server-args="-screen 0 ${resolution}" sh -c 'fluxbox 2>/dev/null & sleep 5; fbsetbg -f "'"$bg"'"; sleep 5; (for i in `seq 100`; do scrot "'"$anim"'/$(printf %03d.png $i)"; sleep 0.2; done) & "$@"' utils/gui-wrapper.sh-subshell "$@"
+xvfb-run -a --server-args="-screen 0 ${resolution}" sh -c 'fluxbox 2>/dev/null & sleep 5; fbsetbg -f "'"$bg"'"; sleep 5; utils/screenshots-loop.sh "'"$anim"'" & "$@"' utils/gui-wrapper.sh-subshell "$@"
-if -n "$(find "$anim"/ -maxdepth 1 -type f -name '*.png')"; then
- convert $(ls "$anim"/*.png | sort) ./deploy-screenshots/anim.gif
+touch "$anim/stop-screenshots"
+for i in `seq 60`; do if test -e "$anim/anim-done"; then break; fi; sleep 1; done
+if test -e "$anim/anim.gif"; then
+ mv "$anim/anim.gif" "./deploy-screenshots/$(basename "$1" .sh)-anim.gif"
fi
+cp "$bg" "./deploy-screenshots/$(basename "$1" .sh)-bg-$(basename "$bg")"
# Cleanup
rm "$bg"
diff --git a/utils/screenshots-loop.sh b/utils/screenshots-loop.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -e
+
+if test $# -ne 1 || test "$1" = "-h" -o "$1" = "--help"; then
+ echo "Usage: $0 path/to/screenshots/directory"
+ exit 1
+fi
+screenshots_dir="$1"
+
+for i in `seq 100`; do
+ if test -e "$screenshots_dir/stop-screenshots"; then
+ break
+ fi
+ scrot "$screenshots_dir/$(printf %03d.png $i)" || break
+ sleep 0.2
+done
+
+if test -n "$(find "$screenshots_dir/" -maxdepth 1 -type f -name '*.png')"; then
+ convert $(ls "$screenshots_dir"/*.png | sort) "$screenshots_dir/anim.gif"
+fi
+
+touch "$screenshots_dir/anim-done"