123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #!/usr/bin/env python
- import subprocess, os, time, xvfbwrapper, itertools
- def run(*args, **kwargs):
- return subprocess.Popen(args, **kwargs)
- def ratpoison(*args):
- return subprocess.check_output(("ratpoison",) + tuple(itertools.chain.from_iterable(("-c", a) for a in args)))
- def snooze(how_long = 15):
- time.sleep(how_long)
- def main():
- with xvfbwrapper.Xvfb(fbdir = "/framebuf"):
- print("DISPLAY={}".format(os.getenv("DISPLAY")))
- print("Starting rodent-free window manager")
- rat = run("ratpoison")
- snooze()
- print("Starting XiLinx installer")
- xsetup = run("./xsetup", cwd = "/xilinx-unpack/Xilinx_ISE_DS_Lin_14.7_1015_1")
- snooze()
- print("First screen")
- ratpoison("ratwarp 650 610", "ratclick")
- snooze()
- print("Second screen")
- ratpoison("ratwarp 250 420", "ratclick",
- "ratwarp 250 444", "ratclick",
- "ratwarp 650 610", "ratclick")
- snooze()
- print("Third screen")
- ratpoison("ratwarp 600 560", "ratclick",
- "ratwarp 650 610", "ratclick")
- snooze()
- print("Fourth screen")
- ratpoison("ratwarp 300 100", "ratclick",
- "ratwarp 650 610", "ratclick")
- for ith in ("Fifth", "Sixth", "Seventh"):
- snooze()
- print(ith + " screen")
- ratpoison("ratclick")
- print("Waiting half an hour for XiLinx installer to run, ^C if you get bored")
- snooze(1800)
- # In theory we could use visgrep to check for the "finish" button.
- # In practice ... this is such a kludge, what's one more, let's just
- # try blindly clicking where the finish button should be and see
- # if that results in a usable image.
- print("Blindly clicking where finish button should be, then shutting down")
- ratpoison("ratwarp 720 610", "ratclick",
- "quit")
- print("xsetup exited with status {}".format(xsetup.wait()))
- print("ratpoison exited with status {}".format(rat.wait()))
- if __name__ == "__main__":
- main()
|