aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-03-05 15:50:27 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-03-05 15:50:27 +0000
commit323ac4a566f7c1ea9006eaf58eae915fac00071b (patch)
tree8c658f272df37796d12a4aa848af8e460b7aad53 /lib/python
parentf4e9150aa736c1b7e7465a19da9355c3b8d56c6f (diff)
downloadenigma2-323ac4a566f7c1ea9006eaf58eae915fac00071b.tar.gz
enigma2-323ac4a566f7c1ea9006eaf58eae915fac00071b.zip
adding the image upgrade wizard
can backup settings to hdd, cf, usb or (in the future) a given path recognizes the backup after flashing the image automatically and asks the user, if it should restore the settings guides the user through the upgrade process
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Plugins/SystemPlugins/SoftwareUpdate/Makefile.am3
-rw-r--r--lib/python/Plugins/SystemPlugins/SoftwareUpdate/plugin.py6
-rw-r--r--lib/python/Screens/ImageWizard.py50
-rw-r--r--lib/python/Screens/Makefile.am2
4 files changed, 58 insertions, 3 deletions
diff --git a/lib/python/Plugins/SystemPlugins/SoftwareUpdate/Makefile.am b/lib/python/Plugins/SystemPlugins/SoftwareUpdate/Makefile.am
index 7b26d5f9..9848f3df 100644
--- a/lib/python/Plugins/SystemPlugins/SoftwareUpdate/Makefile.am
+++ b/lib/python/Plugins/SystemPlugins/SoftwareUpdate/Makefile.am
@@ -3,5 +3,6 @@ installdir = $(LIBDIR)/enigma2/python/Plugins/SystemPlugins/SoftwareUpdate
install_PYTHON = \
__init__.py \
plugin.py \
- update.png
+ update.png
+
diff --git a/lib/python/Plugins/SystemPlugins/SoftwareUpdate/plugin.py b/lib/python/Plugins/SystemPlugins/SoftwareUpdate/plugin.py
index c065c815..00f8e185 100644
--- a/lib/python/Plugins/SystemPlugins/SoftwareUpdate/plugin.py
+++ b/lib/python/Plugins/SystemPlugins/SoftwareUpdate/plugin.py
@@ -8,6 +8,7 @@ from Components.MenuList import MenuList
from Components.Input import Input
from Screens.Console import Console
from Plugins.Plugin import PluginDescriptor
+from Screens.ImageWizard import ImageWizard
import os
@@ -25,7 +26,8 @@ class UpdatePluginMenu(Screen):
list = []
if self.menu == 0:
- list.append((_("Upgrade"), "upgrade"))
+ list.append((_("Image-Upgrade"), "image"))
+ list.append((_("Online-Upgrade"), "upgrade"))
list.append((_("Advanced"), "advanced"))
elif self.menu == 1:
list.append((_("Choose source"), "source"))
@@ -42,6 +44,8 @@ class UpdatePluginMenu(Screen):
def go(self):
if self.menu == 0:
+ if (self["menu"].l.getCurrentSelection()[1] == "image"):
+ self.session.open(ImageWizard)
if (self["menu"].l.getCurrentSelection()[1] == "upgrade"):
self.session.openWithCallback(self.runUpgrade, MessageBox, _("Do you want to update your Dreambox?\nAfter pressing OK, please wait!"))
if (self["menu"].l.getCurrentSelection()[1] == "advanced"):
diff --git a/lib/python/Screens/ImageWizard.py b/lib/python/Screens/ImageWizard.py
new file mode 100644
index 00000000..f96ddadc
--- /dev/null
+++ b/lib/python/Screens/ImageWizard.py
@@ -0,0 +1,50 @@
+from Wizard import Wizard, wizardManager
+
+from Components.config import configElementBoolean, config
+from Components.Pixmap import *
+
+from LanguageSelection import LanguageSelection
+from Tools.Directories import fileExists
+
+import os
+
+backupfile = "backupenigma2settings.tar"
+
+def checkConfigBackup():
+ paths = ['/media/hdd/', '/media/cf/']
+ for x in paths:
+ if fileExists(x + backupfile):
+ return x
+ return None
+
+if checkConfigBackup() is None:
+ backupAvailable = 0
+else:
+ backupAvailable = 1
+
+class ImageWizard(Wizard):
+ skin = """
+ <screen position="0,0" size="720,576" title="Welcome..." flags="wfNoBorder">
+ <widget name="text" position="50,100" size="440,250" font="Regular;23" />
+ <widget name="list" position="50,350" zPosition="1" size="440,200" />
+ <widget name="config" position="50,350" zPosition="1" size="440,200" transparent="1" scrollbarMode="showOnDemand" />
+ </screen>"""
+
+ def __init__(self, session):
+ self.xmlfile = "imagewizard.xml"
+
+ Wizard.__init__(self, session, showSteps=False, showStepSlider=False, showList=True, showConfig=True)
+
+ def markDone(self):
+ pass
+
+wizardManager.registerWizard(ImageWizard, backupAvailable)
+
+def doBackup(path):
+ os.system('tar cvpf ' + path + backupfile + ' /etc/enigma2')
+
+def doRestore(path):
+ os.system('cd / && tar xvpf ' + path + backupfile + ' etc/enigma2')
+
+
+ \ No newline at end of file
diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am
index d917eb39..7a30e88a 100644
--- a/lib/python/Screens/Makefile.am
+++ b/lib/python/Screens/Makefile.am
@@ -9,4 +9,4 @@ install_PYTHON = \
AudioSelection.py InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \
Dish.py SubserviceSelection.py LanguageSelection.py StartWizard.py \
TutorialWizard.py PluginBrowser.py MinuteInput.py Scart.py PVRState.py \
- Console.py InputBox.py ChoiceBox.py SimpleSummary.py
+ Console.py InputBox.py ChoiceBox.py SimpleSummary.py ImageWizard.py