aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Plugins/SystemPlugins
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-02-09 19:45:42 +0100
committerghost <andreas.monzner@multimedia-labs.de>2010-02-09 19:45:42 +0100
commitf87f40e3d7bade8c5dbd12d9ccc7f1b2417fff04 (patch)
treeb08bf76d5eab3fe69fa3ebca9476f8afed24de19 /lib/python/Plugins/SystemPlugins
parent0b5970ebeb4e04cc7b733d2d7b8044459407c634 (diff)
downloadenigma2-f87f40e3d7bade8c5dbd12d9ccc7f1b2417fff04.tar.gz
enigma2-f87f40e3d7bade8c5dbd12d9ccc7f1b2417fff04.zip
lib/python/Plugins/SystemPlugins/SoftwareManager: more robust code this i.e. fixes:
Traceback (most recent call last): File "/usr/lib/enigma2/python/Tools/BoundFunction.py", line 9, in __call__ return self.fnc(*self.args + args, **newkwargs) File "/usr/lib/enigma2/python/Components/Console.py", line 56, in finishedCB self.callbacks[name](data,retval,extra_args) File "/usr/lib/enigma2/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py", line 108, in IpkgListAvailableCB SoftwareTools.available_packetlist.append([name, split[1].strip(), split[2].strip()]) ref bug #383
Diffstat (limited to 'lib/python/Plugins/SystemPlugins')
-rwxr-xr-xlib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py25
-rwxr-xr-xlib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py25
2 files changed, 31 insertions, 19 deletions
diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py
index 4e7591ef..e8cf6dc2 100755
--- a/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py
+++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py
@@ -94,14 +94,17 @@ class SoftwareTools(DreamInfoHandler):
def IpkgListAvailableCB(self, result, retval, extra_args = None):
(callback) = extra_args
- if len(result):
+ if result:
if SoftwareTools.list_updating:
SoftwareTools.available_packetlist = []
for x in result.splitlines():
- split = x.split(' - ')
- name = split[0].strip()
+ tokens = x.split(' - ')
+ name = tokens[0].strip()
if not any(name.endswith(x) for x in self.unwanted_extensions):
- SoftwareTools.available_packetlist.append([name, split[1].strip(), split[2].strip()])
+ l = len(tokens)
+ version = l > 1 and tokens[1].strip() or ""
+ descr = l > 2 and tokens[2].strip() or ""
+ SoftwareTools.available_packetlist.append([name, version, descr])
if callback is None:
self.startInstallMetaPackage()
else:
@@ -126,7 +129,7 @@ class SoftwareTools(DreamInfoHandler):
def InstallMetaPackageCB(self, result, retval, extra_args = None):
(callback) = extra_args
- if len(result):
+ if result:
self.fillPackagesIndexList()
if callback is None:
self.startIpkgListInstalled()
@@ -152,13 +155,15 @@ class SoftwareTools(DreamInfoHandler):
def IpkgListInstalledCB(self, result, retval, extra_args = None):
(callback) = extra_args
- if len(result):
+ if result:
SoftwareTools.installed_packetlist = {}
for x in result.splitlines():
- split = x.split(' - ')
- name = split[0].strip()
+ tokens = x.split(' - ')
+ name = tokens[0].strip()
if not any(name.endswith(x) for x in self.unwanted_extensions):
- SoftwareTools.installed_packetlist[name] = split[1].strip()
+ l = len(tokens)
+ version = l > 1 and tokens[1].strip() or ""
+ SoftwareTools.installed_packetlist[name] = version
if callback is None:
self.countUpdates()
else:
@@ -203,7 +208,7 @@ class SoftwareTools(DreamInfoHandler):
def IpkgUpdateCB(self, result, retval, extra_args = None):
(callback) = extra_args
- if len(result):
+ if result:
if self.Console:
if len(self.Console.appContainers) == 0:
if callback is not None:
diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py
index b20ba51e..4dbe7f70 100755
--- a/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py
+++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py
@@ -1558,24 +1558,31 @@ class PacketManager(Screen):
pass
def IpkgList_Finished(self, result, retval, extra_args = None):
- if len(result):
+ if result:
self.packetlist = []
for x in result.splitlines():
- split = x.split(' - ') #self.blacklisted_packages
- if not any(split[0].strip().endswith(x) for x in self.unwanted_extensions):
- self.packetlist.append([split[0].strip(), split[1].strip(),split[2].strip()])
+ tokens = x.split(' - ') #self.blacklisted_packages
+ name = tokens[0].strip()
+ if not any(name.endswith(x) for x in self.unwanted_extensions):
+ l = len(tokens)
+ version = l > 1 and tokens[1].strip() or ""
+ descr = l > 2 and tokens[2].strip() or ""
+ self.packetlist.append([name, version, descr])
if not self.Console:
self.Console = Console()
cmd = "ipkg list_installed"
self.Console.ePopen(cmd, self.IpkgListInstalled_Finished)
def IpkgListInstalled_Finished(self, result, retval, extra_args = None):
- if len(result):
+ if result:
self.installed_packetlist = {}
for x in result.splitlines():
- split = x.split(' - ')
- if not any(split[0].strip().endswith(x) for x in self.unwanted_extensions):
- self.installed_packetlist[split[0].strip()] = split[1].strip()
+ tokens = x.split(' - ') #self.blacklisted_packages
+ name = tokens[0].strip()
+ if not any(name.endswith(x) for x in self.unwanted_extensions):
+ l = len(tokens)
+ version = l > 1 and tokens[1].strip() or ""
+ self.installed_packetlist[name] = version
self.buildPacketList()
def buildEntryComponent(self, name, version, description, state):
@@ -1703,7 +1710,7 @@ def Plugins(path, **kwargs):
plugin_path = path
list = [
PluginDescriptor(where = [PluginDescriptor.WHERE_NETWORKCONFIG_READ], fnc = autostart),
- PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup),
+ PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup),
PluginDescriptor(name=_("Ipkg"), where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan)
]
if config.usage.setup_level.index >= 2: # expert+