]> code.delx.au - monosys/blob - scripts/osx_battery
youtube.cgi: rewrote get_video_url()
[monosys] / scripts / osx_battery
1 #!/usr/bin/env python
2
3 import itertools
4 import subprocess
5 import re
6 import sys
7
8 # Run ioreg to get the battery status line
9 classes = ["AppleSmartBattery", "IOBatteryInfo"]
10 cmd = ["ioreg", "-w0", "-r", "-c"]
11 iterables = []
12 for klass in classes:
13 p = subprocess.Popen(args=cmd + [klass], stdout=subprocess.PIPE)
14 iterables.append(p.stdout)
15
16 lines = []
17 for line in itertools.chain(*iterables):
18 if line.startswith("+"):
19 continue
20 line = line.strip()
21 if line.find("=") >= 0:
22 line = line.replace("Yes", "True").replace("No", "False")
23 line = line.replace("=", ":")
24 if line.find("<") >= 0:
25 line = line.replace("<", "'<").replace(">", ">'")
26 line += ","
27 lines.append(line)
28 exec "data = " + "\n".join(lines)
29
30
31 fields = [
32 "Current",
33 "Capacity",
34 "Capacity%",
35 "Cycle Count",
36
37 "CurrentCapacity",
38 "MaxCapacity",
39 "DesignCapacity",
40 "CycleCount",
41 "DesignCycleCount",
42 ]
43 for field in fields:
44 if data.has_key(field):
45 print (field+":").ljust(3+max(map(len, fields))),
46 print data[field]
47
48