Support for run-time icons in the GTK puzzles. This involved another
[sgt/puzzles] / icons / screenshot.sh
1 #!/bin/sh
2
3 # Generate a screenshot from a puzzle save file. Takes the
4 # following arguments, in order:
5 #
6 # - the name of the puzzle binary
7 # - the name of the save file
8 # - the name of the output image file
9 # - (optionally) the proportion of the next move to redo before
10 # taking the screenshot.
11 #
12 # This script requires access to an X server in order to run, but
13 # seems to work fine under xvfb-run if you haven't got a real one
14 # available (or if you don't want to use it for some reason).
15
16 binary="$1"
17 save="$2"
18 image="$3"
19 if test "x$4" != "x"; then
20 redo="--redo $4"
21 else
22 redo=
23 fi
24
25 "$binary" $redo --windowid --load "$save" 2>/dev/null | {
26 read windowid
27 # I'm not sure why I have to do this sleep, since gtk.c does
28 # carefully redraw the window _before_ outputting the window ID,
29 # but nonetheless this script doesn't seem to be reliable without
30 # it :-/
31 sleep 1
32 xwd -silent -id $windowid | convert xwd:- "$image"
33 xkill -id $windowid >/dev/null
34 }