[magneto] determine whether system is running on batteries and skip repo sync in case

This commit is contained in:
Fabio Erculiani
2009-09-18 06:33:21 +02:00
parent 4ed7371e9a
commit 64b30fdf39
4 changed files with 50 additions and 0 deletions
+17
View File
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
"""
@author: Fabio Erculiani <lxnay@sabayonlinux.org>
@@ -10,6 +11,7 @@
"""
# System imports
import os
import sys
import time
import subprocess
@@ -248,6 +250,21 @@ class MagnetoCore(MagnetoCoreUI):
_("Repositories are being updated automatically")
)
def is_system_on_batteries(self):
"""
Return whether System is running on batteries.
@return: True, if running on batteries
@rtype: bool
"""
ac_powa_exec = "/usr/bin/on_ac_power"
if not os.access(ac_powa_exec, os.X_OK):
return False
ex_rc = os.system(ac_powa_exec)
if ex_rc:
return True
return False
def is_system_changed(self):
# enable applet if disabled
+5
View File
@@ -73,6 +73,11 @@ class Magneto(MagnetoCore):
def __do_first_check(self):
# if system is running on batteries,
# first check is skipped
if self.is_system_on_batteries():
return
def _do_check():
self.send_check_updates_signal()
return False
+5
View File
@@ -93,6 +93,11 @@ class Magneto(MagnetoCore):
def __do_first_check(self):
# if system is running on batteries,
# first check is skipped
if self.is_system_on_batteries():
return
def _do_check():
self.send_check_updates_signal()
return False
+23
View File
@@ -198,7 +198,25 @@ class UpdatesDaemon(dbus.service.Object):
def do_alert(self, string, msg, urgency = "critical"):
write_output('alert: %s, %s, urgency: %s' % (string, msg, urgency,))
def is_system_on_batteries(self):
"""
Return whether System is running on batteries.
@return: True, if running on batteries
@rtype: bool
"""
ac_powa_exec = "/usr/bin/on_ac_power"
if not os.access(ac_powa_exec, os.X_OK):
return False
ex_rc = os.system(ac_powa_exec)
if ex_rc:
return True
return False
def check_system_changes(self):
if self.is_system_on_batteries():
# running on batteries, then skip
return self.__alive
changed = self._is_system_changed()
if changed:
# trigger check and push
@@ -224,6 +242,11 @@ class UpdatesDaemon(dbus.service.Object):
return self.__alive
def run_fetcher(self):
if self.is_system_on_batteries():
# running on batteries, then skip
return self.__alive
with self.__fetch_mutex:
task = ParallelTask(self.__run_fetcher)
task.start()