def run_statuses(startfunc): """The 'main loop' of dwmstat.""" iters = [startfunc()] previous = '' while True: while iters: iter_ = iters.pop() for value in iter_: if isinstance(value, basestring): utils.dwm_set_status(value) previous = value elif value is PREVIOUS: iters.append(run_animation(iter_, previous)) break else: iters.append(iter_) iters.append(value) break iters.append(choice(utils.statuses)())
for value in iter_: if isinstance(value, basestring): utils.dwm_set_status(value) previous = value elif value is PREVIOUS: iters.append(run_animation(iter_, previous)) break else: iters.append(iter_) iters.append(value) break iters.append(choice(utils.statuses)()) if __name__ == "__main__": try: run_statuses(startup_animation) except KeyboardInterrupt: # say goodbye utils.dwm_set_status("Goodbye.") time.sleep(5) utils.dwm_set_status("") except Exception, e: utils.dwm_set_status("dwmstat crashed: %r" % e) time.sleep(5) utils.dwm_set_status("") raise time.sleep(5) # make sure to exit cleanly utils.dwm_set_status("")