fix and use set_hash_rects
[os-autoinst:os-autoinst.git] / inst / livecdreboot.pm
1 #!/usr/bin/perl -w
2 use strict;
3 use bmwqemu;
4
5 if(!$ENV{LIVECD}) {
6         set_ocr_rect(255,420,530,115);
7         {
8                 local $ENV{SCREENSHOTINTERVAL}=5;
9                 waitinststage "grub|splashscreen|automaticconfiguration", 3000;
10         }
11         set_ocr_rect();
12         if(waitinststage "grub", 1) {
13                 sendkey "ret"; # avoid timeout for booting to HDD
14         }
15         qemusend "eject ide1-cd0";
16         sleep 3;
17 } else {
18         set_ocr_rect(245,440,530,100);
19         # LiveCD needs confirmation for reboot
20         {
21                 local $ENV{SCREENSHOTINTERVAL}=5;
22                 waitinststage("rebootnow", 1500);
23         }
24         set_ocr_rect();
25         sendkey $cmd{"rebootnow"};
26         # no grub visible on proper first boot because of kexec
27         if(0 && !waitinststage "grub") {
28                 sleep 11; # give some time for going down but not for booting up much
29                 # workaround:
30                 # force eject+reboot as it often fails in qemu/kvm
31                 qemusend "eject -f ide1-cd0";
32                 sleep 1;
33                 # hard reset (same as physical reset button on PC)
34                 qemusend "system_reset";
35         }
36         waitinststage "automaticconfiguration";
37 }
38 waitinststage "automaticconfiguration", 70;
39 mousemove_raw(0x7fff,0x7fff); # move mouse off screen again
40 mousemove_raw(0x7fff,0x7fff); # work around no reaction on first move
41 local $ENV{SCREENSHOTINTERVAL}=$ENV{SCREENSHOTINTERVAL}*3;
42 if(!$ENV{GNOME}) {
43         # read sub-stages of automaticconfiguration 
44         set_ocr_rect(240,256,530,100);
45         waitinststage "users|booted", 180;
46         set_ocr_rect();
47 } else {
48         sleep 50; # time for fast-forward
49 }
50
51 set_hash_rects(
52         [30,30,100,100], # where most applications pop up
53         [0,579,100,10 ], # bottom line (KDE/GNOME bar)
54         );
55
56 1;