#!/bin/env python3 # Egg timer # 2020-02-08 # OM from tkinter import * from tkinter import messagebox from tkinter import Canvas import argparse import time root = Tk() def message(m, s): screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() if screen_width <= 0: screen_width = 1024 if screen_height <= 0: screen_height = 768 c = Canvas(root, bg = "darkred", \ width = screen_width, height = screen_height) c.pack() messagebox.showwarning('ALARM', 'Timer ran ' + str(m) + ' m and ' \ + str(s) + ' s') #root.mainloop() def main(): argparser = argparse.ArgumentParser() argparser.add_argument( '-s', help='seconds', type=int, nargs=1 ) argparser.add_argument( '-m', help='minutes', type=int, nargs=1 ) args = argparser.parse_args() if not args.s and not args.m: argparser.print_help() time_s = 0 time_m = 0 if args.s: time_s = abs(args.s[0]) if args.m: time_m = abs(args.m[0]) if args.s or args.m: sleep(m=time_m, s=time_s) message(m=time_m, s=time_s) def sleep(m, s): print('Start: ' + time.ctime()) print('Sleeping for: ' + str(m) \ + ' mins and ' + str(s) + ' seconds') sleep_time_s = s + (m*60) pbar_len = 40 for x in range(sleep_time_s): pr_m, pr_s = divmod(x, 60) print(' {:02d}:{:02d} '.format(pr_m, pr_s), end='') progress = int(x/(sleep_time_s-1) * pbar_len) print('#' * progress + '_' * int(pbar_len-progress), end='') print(' {:02d}:{:02d} '.format(m, s), end='\r') time.sleep(1) if __name__ == '__main__': main()