Mercurial > repo
comparison bin/uptime @ 12137:db60ce0f0bb3 draft
<b_jonas> fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Sun, 17 Nov 2019 19:16:20 +0000 |
parents | |
children | c2f4b787425f |
comparison
equal
deleted
inserted
replaced
12136:d58ddfcf5f07 | 12137:db60ce0f0bb3 |
---|---|
1 #!python3 | |
2 boottime = 1245511822 | |
3 import sys, time | |
4 helpmsg = "\nUsage:\n uptime [options]\n\nOptions:\n -p, --pretty show uptime in pretty format\n -h, --help display this help and exit\n -s, --since system up since\n -V, --version output version information and exit\n\nFor more details see uptime(1)." | |
5 opt_p, opt_s = 0, 0 | |
6 for a in sys.argv[1:]: | |
7 if "--" == a: | |
8 break | |
9 if "-" == a[0]: | |
10 for c in a[1:]: | |
11 if "p" == c: | |
12 opt_p = 1 | |
13 elif "s" == c: | |
14 opt_s = 1 | |
15 elif "V" == c: | |
16 print("uptime from procps-ng 3.3.15") | |
17 sys.exit(0) | |
18 elif "h" == c: | |
19 print(helpmsg, file = sys.stdout) | |
20 sys.exit(0) | |
21 else: | |
22 print("uptime: invalid option -- '" + c + "'\n" + helpmsg, file = sys.stderr) | |
23 sys.exit(0) | |
24 if opt_s: | |
25 print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(boottime))) | |
26 else: | |
27 now = time.time() | |
28 uptime_s = now - boottime | |
29 uptime_d, uptime_md = divmod(uptime_s, 60*60*24) | |
30 uptime_h, uptime_mh = divmod(uptime_md, 60*60) | |
31 uptime_m = uptime_mh // 60 | |
32 if opt_p: | |
33 print("up %d day, %d hours, %d minutes" % | |
34 (uptime_d, uptime_h, uptime_m)) | |
35 else: | |
36 nowfmt = time.strftime("%H:%M:%S", time.localtime(now)) | |
37 loadavg = ", ".join(open("/proc/loadavg").read().split()[0:3]) | |
38 print(" %s up %d day, %2d:%02d, 0 users, load average: %s" % | |
39 (nowfmt, uptime_d, uptime_h, uptime_m, loadavg)) | |
40 |