forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| # Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
 | |
| # Use of this source code is governed by a BSD-style license that can be
 | |
| # found in the LICENSE file.
 | |
| 
 | |
| """
 | |
| Show battery information.
 | |
| 
 | |
| $ python scripts/battery.py
 | |
| charge:     74%
 | |
| left:       2:11:31
 | |
| status:     discharging
 | |
| plugged in: no
 | |
| """
 | |
| 
 | |
| from __future__ import print_function
 | |
| import sys
 | |
| 
 | |
| import psutil
 | |
| 
 | |
| 
 | |
| def secs2hours(secs):
 | |
|     mm, ss = divmod(secs, 60)
 | |
|     hh, mm = divmod(mm, 60)
 | |
|     return "%d:%02d:%02d" % (hh, mm, ss)
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     if not hasattr(psutil, "sensors_battery"):
 | |
|         return sys.exit("platform not supported")
 | |
|     batt = psutil.sensors_battery()
 | |
|     if batt is None:
 | |
|         return sys.exit("no battery is installed")
 | |
| 
 | |
|     print("charge:     %s%%" % round(batt.percent, 2))
 | |
|     if batt.power_plugged:
 | |
|         print("status:     %s" % (
 | |
|             "charging" if batt.percent < 100 else "fully charged"))
 | |
|         print("plugged in: yes")
 | |
|     else:
 | |
|         print("left:       %s" % secs2hours(batt.secsleft))
 | |
|         print("status:     %s" % "discharging")
 | |
|         print("plugged in: no")
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()
 | 
