nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 xvfb-run,
4 tvbrowser,
5 runCommand,
6 writeShellApplication,
7 xwininfo,
8}:
9
10let
11 testScript = writeShellApplication {
12 name = "tvbrowser-test-script";
13 runtimeInputs = [
14 xwininfo
15 tvbrowser
16 ];
17 text = ''
18 function find_tvbrowser_windows {
19 for window_name in java tvbrowser-TVBrowser 'Setup assistant' ; do
20 grep -q "$window_name" "$1" || return 1
21 done
22 }
23 tvbrowser &
24 for _ in {0..900} ; do
25 xwininfo -root -tree \
26 | sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d' \
27 | tee window-names
28 echo
29 if find_tvbrowser_windows window-names ; then
30 break
31 fi
32 sleep 1
33 done
34 find_tvbrowser_windows window-names
35 '';
36 };
37in
38runCommand "tvbrowser-test" { buildInputs = [ xvfb-run ]; } ''
39 HOME=$PWD xvfb-run ${lib.getExe testScript}
40 touch ${placeholder "out"}
41''