append, don't overwrite __init__.py files
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Thu, 23 Feb 2006 02:39:31 +0000 (02:39 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Thu, 23 Feb 2006 02:39:31 +0000 (02:39 +0000)
reread plugin list revisited

lib/python/Components/PluginComponent.py
lib/python/Screens/PluginBrowser.py

index f3cd7e1..e55bbd4 100644 (file)
@@ -34,6 +34,11 @@ class PluginComponent:
                        if x == PluginDescriptor.WHERE_AUTOSTART:
                                plugin(reason=1)
        
+       def reReadPluginList(self, directory, depth = 1):
+               print "re-reading plugin list"
+               self.clearPluginList()
+               self.readPluginList(directory=directory, depth=depth)
+       
        def readPluginList(self, directory, modules = [], depth = 1):
                """enumerates plugins"""
                
@@ -59,7 +64,7 @@ class PluginComponent:
                                                p.updateIcon(path)
                                                self.addPlugin(p);
                                else:
-                                       open(path + "__init__.py", "w").close()
+                                       open(path + "__init__.py", "a").close()
                                        self.readPluginList(path, modules + [x], depth - 1)
 
        def getPlugins(self, where):
@@ -75,6 +80,7 @@ class PluginComponent:
        
        def clearPluginList(self):
                self.pluginList = []
+               self.plugins = {}
 
        def shutdown(self):
                for p in self.pluginList[:]:
index 75599c2..a21dde8 100644 (file)
@@ -112,8 +112,7 @@ class PluginDownloadBrowser(Screen):
                self.container.execute("ipkg update")
                
        def installFinished(self):
-               plugins.clearPluginList()
-               plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
+               plugins.reReadPluginList(resolveFilename(SCOPE_PLUGINS))
                self.close()
                
        def runFinished(self, retval):