aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2008-05-17 22:54:46 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2008-05-17 22:54:46 +0000
commit605ad52612d47d3ff18a4b045bc1ade29277722e (patch)
tree159023ca981c3318366020765bae23dbebb39e21 /lib/python
parentedd49056e4f324834dbe499a8be69ae07ebe1bdc (diff)
downloadenigma2-605ad52612d47d3ff18a4b045bc1ade29277722e.tar.gz
enigma2-605ad52612d47d3ff18a4b045bc1ade29277722e.zip
add DreamPackageWizard
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/Scanner.py2
-rw-r--r--lib/python/Screens/DefaultWizard.py56
2 files changed, 54 insertions, 4 deletions
diff --git a/lib/python/Components/Scanner.py b/lib/python/Components/Scanner.py
index 6acdecc8..94c9cc2f 100644
--- a/lib/python/Components/Scanner.py
+++ b/lib/python/Components/Scanner.py
@@ -24,6 +24,8 @@ def getType(file):
return "application/x-debian-package"
elif ext == "ogg":
return "application/ogg"
+ elif ext == "dmpkg":
+ return "application/x-dream-package"
return type
class Scanner:
diff --git a/lib/python/Screens/DefaultWizard.py b/lib/python/Screens/DefaultWizard.py
index 87f6816a..33a3d20e 100644
--- a/lib/python/Screens/DefaultWizard.py
+++ b/lib/python/Screens/DefaultWizard.py
@@ -5,6 +5,8 @@ from Tools.Directories import crawlDirectory, resolveFilename, SCOPE_DEFAULTDIR,
from Components.Pixmap import Pixmap, MovingPixmap
from Components.config import config, ConfigBoolean, configfile, ConfigYesNo, getConfigListEntry
from Components.DreamInfoHandler import DreamInfoHandler, InfoHandler, InfoHandlerParseError
+from Components.PluginComponent import plugins
+from Plugins.Plugin import PluginDescriptor
import os
config.misc.defaultchosen = ConfigBoolean(default = True)
@@ -15,9 +17,7 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler):
def __init__(self, session, silent = True):
DreamInfoHandler.__init__(self, self.statusCallback)
self.silent = silent
- os.system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)))
- self.directory = resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)
- self.xmlfile = "defaultwizard.xml"
+ self.setDirectory()
WizardLanguage.__init__(self, session, showSteps = False)
self["wizard"] = Pixmap()
@@ -25,6 +25,11 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler):
self["arrowdown"] = MovingPixmap()
self["arrowup"] = MovingPixmap()
self["arrowup2"] = MovingPixmap()
+
+ def setDirectory(self):
+ os.system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)))
+ self.directory = resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR)
+ self.xmlfile = "defaultwizard.xml"
def markDone(self):
config.misc.defaultchosen.value = 0
@@ -58,6 +63,17 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler):
indexList.append(x)
self.installPackages(indexList)
+class DreamPackageWizard(DefaultWizard):
+ def __init__(self, session, packagefile, silent = False):
+ os.system("mkdir /tmp/package")
+ os.system("tar xpzf %s -C /tmp/package" % packagefile)
+ self.packagefile = packagefile
+ DefaultWizard.__init__(self, session, silent)
+
+ def setDirectory(self):
+ self.directory = "/tmp/package"
+ self.xmlfile = "dreampackagewizard.xml"
+
class ImageDefaultInstaller(DreamInfoHandler):
def __init__(self):
DreamInfoHandler.__init__(self, self.statusCallback, blocking = True)
@@ -67,8 +83,40 @@ class ImageDefaultInstaller(DreamInfoHandler):
def statusCallback(self, status, progress):
pass
-
+
+def install(choice):
+ if choice is not None:
+ #os.system("mkdir /tmp/package && tar xpzf %s ")
+ choice[2].open(DreamPackageWizard, choice[1])
+
+def filescan_open(list, session, **kwargs):
+ from Screens.ChoiceBox import ChoiceBox
+ print "open default wizard"
+ filelist = [(os.path.split(x.path)[1], x.path, session) for x in list]
+ print filelist
+ session.openWithCallback(install, ChoiceBox, title = _("Please choose he package..."), list=filelist)
+
+def filescan(**kwargs):
+ from Components.Scanner import Scanner, ScanPath
+ from mimetypes import add_type
+ add_type("application/x-dream-package", "dmpkg")
+ return \
+ Scanner(mimetypes = ["application/x-dream-package"],
+ paths_to_scan =
+ [
+ ScanPath(path = "dmpkg", with_subdirs = True),
+ ScanPath(path = "", with_subdirs = False),
+ ],
+ name = "Dream-Package",
+ description = "Install settings, skins, software...",
+ openfnc = filescan_open, )
+
+print "add dreampackage scanner plugin"
+plugins.addPlugin(PluginDescriptor(name="Dream-Package", where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan, internal = True))
+print "added"
+
wizardManager.registerWizard(DefaultWizard, config.misc.defaultchosen.value, priority = 6)
+
if config.misc.defaultchosen.value:
print "Installing image defaults"
installer = ImageDefaultInstaller()