use eEnv::resolve() / eEnv.resolve()
authorAndreas Oberritter <obi@opendreambox.org>
Thu, 28 Oct 2010 18:29:01 +0000 (20:29 +0200)
committerAndreas Oberritter <obi@opendreambox.org>
Tue, 16 Nov 2010 16:15:37 +0000 (17:15 +0100)
21 files changed:
lib/base/encoding.cpp
lib/dvb/db.cpp
lib/dvb/scan.cpp
lib/python/Components/NimManager.py
lib/python/Components/Renderer/Picon.py
lib/python/Components/UsageConfig.py
lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py
lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py
lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py
lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py
lib/python/Plugins/SystemPlugins/SoftwareManager/ImageWizard.py
lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py
lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py
lib/python/Screens/ChannelSelection.py
lib/python/Screens/Setup.py
lib/python/Screens/Wizard.py
lib/python/Tools/Directories.py
main/bsod.cpp
main/enigma-gdi.cpp
main/enigma-gui.cpp
main/enigma.cpp

index 8b4b592b6bfcd63d24b8aadabee9bcd29c2711ab..361acce55d43a9f1f7e14236461dd4cc3205ef3a 100644 (file)
@@ -2,6 +2,7 @@
 #include <cstdlib>
 #include <lib/base/encoding.h>
 #include <lib/base/eerror.h>
 #include <cstdlib>
 #include <lib/base/encoding.h>
 #include <lib/base/eerror.h>
+#include <lib/base/eenv.h>
 
 eDVBTextEncodingHandler encodingHandler;  // the one and only instance
 
 
 eDVBTextEncodingHandler encodingHandler;  // the one and only instance
 
@@ -17,8 +18,8 @@ inline char toupper(char c)
 
 eDVBTextEncodingHandler::eDVBTextEncodingHandler()
 {
 
 eDVBTextEncodingHandler::eDVBTextEncodingHandler()
 {
-       const char * file=DATADIR "/enigma2/encoding.conf";
-       FILE *f = fopen(file, "rt");
+       std::string file = eEnv::resolve("${datadir}/enigma2/encoding.conf");
+       FILE *f = fopen(file.c_str(), "rt");
        if (f)
        {
                char *line = (char*) malloc(256);
        if (f)
        {
                char *line = (char*) malloc(256);
@@ -61,7 +62,7 @@ eDVBTextEncodingHandler::eDVBTextEncodingHandler()
                free(line);
        }
        else
                free(line);
        }
        else
-               eDebug("[eDVBTextEncodingHandler] couldn't open %s !", file);
+               eDebug("[eDVBTextEncodingHandler] couldn't open %s !", file.c_str());
 }
 
 void eDVBTextEncodingHandler::getTransponderDefaultMapping(int tsidonid, int &table)
 }
 
 void eDVBTextEncodingHandler::getTransponderDefaultMapping(int tsidonid, int &table)
index 38be6359cabfd4624d6d4e906b63c12d4f210335..522035eb7585b751c0f22bf6ac117ea0bdc03ed9 100644 (file)
@@ -3,6 +3,7 @@
 #include <lib/dvb/dvb.h>
 #include <lib/dvb/frontend.h>
 #include <lib/dvb/epgcache.h>
 #include <lib/dvb/dvb.h>
 #include <lib/dvb/frontend.h>
 #include <lib/dvb/epgcache.h>
+#include <lib/base/eenv.h>
 #include <lib/base/eerror.h>
 #include <lib/base/estring.h>
 #include <xmlccwrap/xmlccwrap.h>
 #include <lib/base/eerror.h>
 #include <lib/base/estring.h>
 #include <xmlccwrap/xmlccwrap.h>
@@ -73,7 +74,7 @@ RESULT eBouquet::moveService(const eServiceReference &ref, unsigned int pos)
 
 RESULT eBouquet::flushChanges()
 {
 
 RESULT eBouquet::flushChanges()
 {
-       FILE *f=fopen((CONFIGDIR"/enigma2/"+m_filename).c_str(), "w");
+       FILE *f=fopen(eEnv::resolve("${sysconfdir}/enigma2/" + m_filename).c_str(), "w");
        if (!f)
                return -1;
        if ( fprintf(f, "#NAME %s\r\n", m_bouquet_name.c_str()) < 0 )
        if (!f)
                return -1;
        if ( fprintf(f, "#NAME %s\r\n", m_bouquet_name.c_str()) < 0 )
@@ -280,7 +281,7 @@ DEFINE_REF(eDVBDB);
 
 void eDVBDB::reloadServicelist()
 {
 
 void eDVBDB::reloadServicelist()
 {
-       loadServicelist(CONFIGDIR"/enigma2/lamedb");
+       loadServicelist(eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
 }
 
 void eDVBDB::parseServiceData(ePtr<eDVBService> s, std::string str)
 }
 
 void eDVBDB::parseServiceData(ePtr<eDVBService> s, std::string str)
@@ -324,14 +325,14 @@ void eDVBDB::loadServicelist(const char *file)
 {
        eDebug("---- opening lame channel db");
        FILE *f=fopen(file, "rt");
 {
        eDebug("---- opening lame channel db");
        FILE *f=fopen(file, "rt");
-       if (!f && strcmp(file, CONFIGDIR"/enigma2/lamedb") == 0)
+       if (!f && strcmp(file, eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str()) == 0)
        {
                struct stat s;
                if ( !stat("lamedb", &s) )
                {
        {
                struct stat s;
                if ( !stat("lamedb", &s) )
                {
-                       if ( !stat(CONFIGDIR"/enigma2", &s) )
+                       if ( !stat(eEnv::resolve("${sysconfdir}/enigma2").c_str(), &s) )
                        {
                        {
-                               rename("lamedb", CONFIGDIR"/enigma2/lamedb" );
+                               rename("lamedb", eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
                                reloadServicelist();
                        }
                }
                                reloadServicelist();
                        }
                }
@@ -594,7 +595,7 @@ void eDVBDB::saveServicelist(const char *file)
 
 void eDVBDB::saveServicelist()
 {
 
 void eDVBDB::saveServicelist()
 {
-       saveServicelist(CONFIGDIR"/enigma2/lamedb");
+       saveServicelist(eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
 }
 
 void eDVBDB::loadBouquet(const char *path)
 }
 
 void eDVBDB::loadBouquet(const char *path)
@@ -618,7 +619,7 @@ void eDVBDB::loadBouquet(const char *path)
        std::list<eServiceReference> &list = bouquet.m_services;
        list.clear();
 
        std::list<eServiceReference> &list = bouquet.m_services;
        list.clear();
 
-       std::string p = CONFIGDIR"/enigma2/";
+       std::string p = eEnv::resolve("${sysconfdir}/enigma2/");
        p+=path;
        eDebug("loading bouquet... %s", p.c_str());
        FILE *fp=fopen(p.c_str(), "rt");
        p+=path;
        eDebug("loading bouquet... %s", p.c_str());
        FILE *fp=fopen(p.c_str(), "rt");
index b37aa7141d106ddc38c74f4b7c137a222eb67f8b..d559614c61e05cfbc9d457d8ef72ef0752275973 100644 (file)
@@ -10,6 +10,7 @@
 #include <lib/dvb/esection.h>
 #include <lib/dvb/scan.h>
 #include <lib/dvb/frontend.h>
 #include <lib/dvb/esection.h>
 #include <lib/dvb/scan.h>
 #include <lib/dvb/frontend.h>
+#include <lib/base/eenv.h>
 #include <lib/base/eerror.h>
 #include <lib/base/estring.h>
 #include <lib/python/python.h>
 #include <lib/base/eerror.h>
 #include <lib/base/estring.h>
 #include <lib/python/python.h>
@@ -29,7 +30,8 @@ eDVBScan::eDVBScan(iDVBChannel *channel, bool usePAT, bool debug)
        if (m_channel->getDemux(m_demux))
                SCAN_eDebug("scan: failed to allocate demux!");
        m_channel->connectStateChange(slot(*this, &eDVBScan::stateChange), m_stateChanged_connection);
        if (m_channel->getDemux(m_demux))
                SCAN_eDebug("scan: failed to allocate demux!");
        m_channel->connectStateChange(slot(*this, &eDVBScan::stateChange), m_stateChanged_connection);
-       FILE *f = fopen("/etc/enigma2/scan_tp_valid_check.py", "r");
+       std::string filename = eEnv::resolve("${sysconfdir}/scan_tp_valid_check.py");
+       FILE *f = fopen(filename.c_str(), "r");
        if (f)
        {
                char code[16384];
        if (f)
        {
                char code[16384];
@@ -37,7 +39,7 @@ eDVBScan::eDVBScan(iDVBChannel *channel, bool usePAT, bool debug)
                if (rd)
                {
                        code[rd]=0;
                if (rd)
                {
                        code[rd]=0;
-                       m_additional_tsid_onid_check_func = Py_CompileString(code, "/etc/enigma2/scan_tp_valid_check.py", Py_file_input);
+                       m_additional_tsid_onid_check_func = Py_CompileString(code, filename.c_str(), Py_file_input);
                }
                fclose(f);
        }
                }
                fclose(f);
        }
index 73031861795941491ce1839440da3ddeb4169ea4..d8a7c5c2f09e2491227913d7572057a0f60ee797 100644 (file)
@@ -10,7 +10,7 @@ from enigma import eDVBSatelliteEquipmentControl as secClass, \
        eDVBSatelliteDiseqcParameters as diseqcParam, \
        eDVBSatelliteSwitchParameters as switchParam, \
        eDVBSatelliteRotorParameters as rotorParam, \
        eDVBSatelliteDiseqcParameters as diseqcParam, \
        eDVBSatelliteSwitchParameters as switchParam, \
        eDVBSatelliteRotorParameters as rotorParam, \
-       eDVBResourceManager, eDVBDB
+       eDVBResourceManager, eDVBDB, eEnv
 
 from time import localtime, mktime
 from datetime import datetime
 
 from time import localtime, mktime
 from datetime import datetime
@@ -1082,7 +1082,7 @@ def InitNimManager(nimmgr):
 
        unicablelnbproducts = {}
        unicablematrixproducts = {}
 
        unicablelnbproducts = {}
        unicablematrixproducts = {}
-       doc = xml.etree.cElementTree.parse("/usr/share/enigma2/unicable.xml")
+       doc = xml.etree.cElementTree.parse(eEnv.resolve("${datadir}/enigma2/unicable.xml"))
        root = doc.getroot()
 
        entry = root.find("lnb")
        root = doc.getroot()
 
        entry = root.find("lnb")
index 5ae43ed8b80fab4c3aa70e3cb00381e5166ba25a..51dc09a5a549e0114cfe84d03781311c00555014 100644 (file)
@@ -2,11 +2,11 @@
 ## Picon renderer by Gruffy .. some speedups by Ghost
 ##
 from Renderer import Renderer
 ## Picon renderer by Gruffy .. some speedups by Ghost
 ##
 from Renderer import Renderer
-from enigma import ePixmap
+from enigma import ePixmap, eEnv
 from Tools.Directories import fileExists, SCOPE_SKIN_IMAGE, SCOPE_CURRENT_SKIN, resolveFilename
 
 class Picon(Renderer):
 from Tools.Directories import fileExists, SCOPE_SKIN_IMAGE, SCOPE_CURRENT_SKIN, resolveFilename
 
 class Picon(Renderer):
-       searchPaths = ('/usr/share/enigma2/%s/',
+       searchPaths = (eEnv.resolve('${datadir}/enigma2/%s/'),
                                '/media/cf/%s/',
                                '/media/usb/%s/')
 
                                '/media/cf/%s/',
                                '/media/usb/%s/')
 
index b86c1a13128fc1a3cd26351637f12f7423c275ca..8ea9aa6ae22e57dbed020f1371d12d775739a747 100644 (file)
@@ -1,7 +1,7 @@
 from Components.Harddisk import harddiskmanager
 from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
 from Tools.Directories import resolveFilename, SCOPE_HDD
 from Components.Harddisk import harddiskmanager
 from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
 from Tools.Directories import resolveFilename, SCOPE_HDD
-from enigma import Misc_Options, setTunerTypePriorityOrder;
+from enigma import Misc_Options, setTunerTypePriorityOrder, eEnv;
 from SystemInfo import SystemInfo
 import os
 
 from SystemInfo import SystemInfo
 import os
 
@@ -94,7 +94,7 @@ def InitUsageConfig():
 
        SystemInfo["12V_Output"] = Misc_Options.getInstance().detected_12V_output()
 
 
        SystemInfo["12V_Output"] = Misc_Options.getInstance().detected_12V_output()
 
-       config.usage.keymap = ConfigText(default = "/usr/share/enigma2/keymap.xml")
+       config.usage.keymap = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keymap.xml"))
 
        config.seek = ConfigSubsection()
        config.seek.selfdefined_13 = ConfigNumber(default=15)
 
        config.seek = ConfigSubsection()
        config.seek.selfdefined_13 = ConfigNumber(default=15)
index 2c0edf539452155c59793ca1216fb64c54208d53..52296c6685f908e6ccfbb1241a7e84d8938a6189 100755 (executable)
@@ -12,7 +12,7 @@ from ServiceReference import ServiceReference
 from Plugins.Plugin import PluginDescriptor
 from xml.etree.cElementTree import parse as ci_parse
 from Tools.XMLTools import elementsWithTag, mergeText, stringToXML
 from Plugins.Plugin import PluginDescriptor
 from xml.etree.cElementTree import parse as ci_parse
 from Tools.XMLTools import elementsWithTag, mergeText, stringToXML
-from enigma import eDVBCI_UI, eDVBCIInterfaces
+from enigma import eDVBCI_UI, eDVBCIInterfaces, eEnv
 
 from os import system, path as os_path
 
 
 from os import system, path as os_path
 
@@ -115,7 +115,7 @@ class CIconfigMenu(Screen):
 
                Screen.__init__(self, session)
                self.ci_slot=ci_slot
 
                Screen.__init__(self, session)
                self.ci_slot=ci_slot
-               self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml"
+               self.filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(self.ci_slot) + ".xml"
 
                self["key_red"] = StaticText(_("Delete"))
                self["key_green"] = StaticText(_("add Service"))
 
                self["key_red"] = StaticText(_("Delete"))
                self["key_green"] = StaticText(_("add Service"))
@@ -567,7 +567,7 @@ def activate_all(session):
                        return Len > 0 and definitions[Len-1].text or default   
 
                for ci in range(NUM_CI):
                        return Len > 0 and definitions[Len-1].text or default   
 
                for ci in range(NUM_CI):
-                       filename="/etc/enigma2/ci"+str(ci)+".xml"
+                       filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(ci) + ".xml"
 
                        if not os_path.exists(filename):
                                print "[CI_Activate_Config_CI%d] no config file found" %ci
 
                        if not os_path.exists(filename):
                                print "[CI_Activate_Config_CI%d] no config file found" %ci
index ba96c07182814456b5cd36a8e0de0d3add979f78..3504d4cb06b564c14f18939eed0b3296c6a7c6fc 100755 (executable)
@@ -14,7 +14,7 @@ from Screens.TaskView import JobView
 from Tools.Directories import fileExists
 from Tools.HardwareInfo import HardwareInfo
 from os import system
 from Tools.Directories import fileExists
 from Tools.HardwareInfo import HardwareInfo
 from os import system
-from enigma import eConsoleAppContainer, quitMainloop
+from enigma import eConsoleAppContainer, quitMainloop, eEnv
 from Components.About import about
 
 class md5Postcondition(Condition):
 from Components.About import about
 
 class md5Postcondition(Condition):
@@ -51,7 +51,7 @@ class md5verify(Task):
 class writeNAND(Task):
        def __init__(self, job, param, box):
                Task.__init__(self,job, ("Writing image file to NAND Flash"))
 class writeNAND(Task):
        def __init__(self, job, param, box):
                Task.__init__(self,job, ("Writing image file to NAND Flash"))
-               self.setTool("/usr/lib/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1")
+               self.setTool(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1"))
                if box == "dm7025":
                        self.end = 256
                elif box[:5] == "dm800":
                if box == "dm7025":
                        self.end = 256
                elif box[:5] == "dm800":
@@ -226,4 +226,4 @@ class NFIFlash(Screen):
                if self.job.status == self.job.FINISHED:
                        self["status"].text = ("rebooting...")
                        from os import system
                if self.job.status == self.job.FINISHED:
                        self["status"].text = ("rebooting...")
                        from os import system
-                       system("/usr/lib/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh")
+                       system(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh"))
index 997b957186657260b6d1928995892c057f5d3e89..30cbb6b6bbf7f307dc39db7b68799b7eaa62e987 100755 (executable)
@@ -12,12 +12,13 @@ from Plugins.Plugin import PluginDescriptor
 from Components.config import config
 from Tools.Directories import resolveFilename, SCOPE_PLUGINS
 from os import path, walk
 from Components.config import config
 from Tools.Directories import resolveFilename, SCOPE_PLUGINS
 from os import path, walk
+from enigma import eEnv
 
 class SkinSelector(Screen):
        # for i18n:
        # _("Choose your Skin")
        skinlist = []
 
 class SkinSelector(Screen):
        # for i18n:
        # _("Choose your Skin")
        skinlist = []
-       root = "/usr/share/enigma2/"
+       root = eEnv.resolve("${datadir}/enigma2/")
 
        def __init__(self, session, args = None):
 
 
        def __init__(self, session, args = None):
 
index 7bd7d7a224bf7b3d4dbf643aa1c57856100f68fb..01649bb379ba52dc58fab500fc7a172a3409f8dd 100755 (executable)
@@ -11,7 +11,7 @@ from Components.config import config
 from Components.ConfigList import ConfigList,ConfigListScreen
 from Components.FileList import MultiFileSelectList
 from Plugins.Plugin import PluginDescriptor
 from Components.ConfigList import ConfigList,ConfigListScreen
 from Components.FileList import MultiFileSelectList
 from Plugins.Plugin import PluginDescriptor
-from enigma import eTimer
+from enigma import eTimer, eEnv
 from Tools.Directories import *
 from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
 from time import gmtime, strftime, localtime
 from Tools.Directories import *
 from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
 from time import gmtime, strftime, localtime
@@ -20,7 +20,7 @@ from datetime import date
 
 config.plugins.configurationbackup = ConfigSubsection()
 config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
 
 config.plugins.configurationbackup = ConfigSubsection()
 config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
 
 def getBackupPath():
        backuppath = config.plugins.configurationbackup.backuplocation.value
 
 def getBackupPath():
        backuppath = config.plugins.configurationbackup.backuplocation.value
index 1797e4feca73fd3340630d47709db570033236b0..32d7140a0fa5bc0b1cc40c7b2fc07a5b59e25b4b 100755 (executable)
@@ -9,13 +9,14 @@ from Plugins.Plugin import PluginDescriptor
 from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
 from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap
 from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
 from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
 from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap
 from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
+from enigma import eEnv
 
 from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigText, ConfigLocations, ConfigBoolean
 from Components.Harddisk import harddiskmanager
 config.misc.firstrun = ConfigBoolean(default = True)
 config.plugins.configurationbackup = ConfigSubsection()
 config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
 
 from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigText, ConfigLocations, ConfigBoolean
 from Components.Harddisk import harddiskmanager
 config.misc.firstrun = ConfigBoolean(default = True)
 config.plugins.configurationbackup = ConfigSubsection()
 config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf'])
 
 
 backupfile = "enigma2settingsbackup.tar.gz"
 
 
 backupfile = "enigma2settingsbackup.tar.gz"
index 707663a0dcde2e6b2e3e5a57c19e6502364908e9..e1f3e1deffe15ed2e9d595acc36e9e7254a7bcc3 100755 (executable)
@@ -28,7 +28,7 @@ from Components.Network import iNetwork
 from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_PLUGIN, SCOPE_CURRENT_SKIN, SCOPE_METADIR
 from Tools.LoadPixmap import LoadPixmap
 from Tools.NumericalTextInput import NumericalTextInput
 from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_PLUGIN, SCOPE_CURRENT_SKIN, SCOPE_METADIR
 from Tools.LoadPixmap import LoadPixmap
 from Tools.NumericalTextInput import NumericalTextInput
-from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont, getDesktop, ePicLoad, eRCInput, getPrevAsciiCode
+from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont, getDesktop, ePicLoad, eRCInput, getPrevAsciiCode, eEnv
 from cPickle import dump, load
 from os import path as os_path, system as os_system, unlink, stat, mkdir, popen, makedirs, listdir, access, rename, remove, W_OK, R_OK, F_OK
 from time import time, gmtime, strftime, localtime
 from cPickle import dump, load
 from os import path as os_path, system as os_system, unlink, stat, mkdir, popen, makedirs, listdir, access, rename, remove, W_OK, R_OK, F_OK
 from time import time, gmtime, strftime, localtime
@@ -43,7 +43,7 @@ from SoftwareTools import iSoftwareTools
 
 config.plugins.configurationbackup = ConfigSubsection()
 config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
 
 config.plugins.configurationbackup = ConfigSubsection()
 config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
 
 config.plugins.SoftwareManager = ConfigSubsection()
 config.plugins.SoftwareManager.overwriteConfigFiles = ConfigSelection(
 
 config.plugins.SoftwareManager = ConfigSubsection()
 config.plugins.SoftwareManager.overwriteConfigFiles = ConfigSelection(
@@ -1684,7 +1684,7 @@ class PacketManager(Screen, NumericalTextInput):
                self.cmdList = []
                self.cachelist = []
                self.cache_ttl = 86400  #600 is default, 0 disables, Seconds cache is considered valid (24h should be ok for caching ipkgs)
                self.cmdList = []
                self.cachelist = []
                self.cache_ttl = 86400  #600 is default, 0 disables, Seconds cache is considered valid (24h should be ok for caching ipkgs)
-               self.cache_file = '/usr/lib/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache' #Path to cache directory   
+               self.cache_file = eEnv.resolve('${libdir}/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache') #Path to cache directory
                self.oktext = _("\nAfter pressing OK, please wait!")
                self.unwanted_extensions = ('-dbg', '-dev', '-doc', 'busybox')
                self.opkgAvail = fileExists('/usr/bin/opkg')
                self.oktext = _("\nAfter pressing OK, please wait!")
                self.unwanted_extensions = ('-dbg', '-dev', '-doc', 'busybox')
                self.opkgAvail = fileExists('/usr/bin/opkg')
index 28ee363edccf01ea13097e0095ec997246f95b36..a13c7975c4492aa6287c27413a7c15925ee54a2f 100755 (executable)
@@ -1,4 +1,4 @@
-from enigma import eTimer, eTPM
+from enigma import eTimer, eTPM, eEnv
 from Screens.Screen import Screen
 from Components.ActionMap import ActionMap, NumberActionMap
 from Components.Pixmap import Pixmap,MultiPixmap
 from Screens.Screen import Screen
 from Components.ActionMap import ActionMap, NumberActionMap
 from Components.Pixmap import Pixmap,MultiPixmap
@@ -18,7 +18,7 @@ from Tools.HardwareInfo import HardwareInfo
 from Wlan import Wlan, wpaSupplicant, iStatus
 import sha
 
 from Wlan import Wlan, wpaSupplicant, iStatus
 import sha
 
-plugin_path = "/usr/lib/enigma2/python/Plugins/SystemPlugins/WirelessLan"
+plugin_path = eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/WirelessLan")
 
 list = []
 list.append("WEP")
 
 list = []
 list.append("WEP")
index 34316f01b0b085dc5379b14c44a09b51771c19f2..c07e34954e4955bc1922e11d764475e460ce5286 100644 (file)
@@ -8,7 +8,7 @@ from Components.MenuList import MenuList
 from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
 profile("ChannelSelection.py 1")
 from EpgSelection import EPGSelection
 from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
 profile("ChannelSelection.py 1")
 from EpgSelection import EPGSelection
-from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode
+from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode, eEnv
 from Components.config import config, ConfigSubsection, ConfigText
 from Tools.NumericalTextInput import NumericalTextInput
 profile("ChannelSelection.py 2")
 from Components.config import config, ConfigSubsection, ConfigText
 from Tools.NumericalTextInput import NumericalTextInput
 profile("ChannelSelection.py 2")
@@ -544,7 +544,7 @@ class ChannelSelectionEdit:
                        refstr = refstr[pos+14:]
                        pos = refstr.find('"')
                        if pos != -1:
                        refstr = refstr[pos+14:]
                        pos = refstr.find('"')
                        if pos != -1:
-                               filename = '/etc/enigma2/' + refstr[:pos] # FIXMEEE !!! HARDCODED /etc/enigma2
+                               filename = eEnv.resolve('${sysconfdir}/enigma2/') + refstr[:pos]
                self.removeCurrentService()
                try:
                        if filename is not None:
                self.removeCurrentService()
                try:
                        if filename is not None:
index e9c3c680b5542871d6f46f14177fed639f721dd9..61e6fdd72187f8c263c75be820ea7a3400bb95d1 100755 (executable)
@@ -4,6 +4,7 @@ from Components.config import config, ConfigNothing
 from Components.SystemInfo import SystemInfo
 from Components.ConfigList import ConfigListScreen
 from Components.Sources.StaticText import StaticText
 from Components.SystemInfo import SystemInfo
 from Components.ConfigList import ConfigListScreen
 from Components.Sources.StaticText import StaticText
+from enigma import eEnv
 
 import xml.etree.cElementTree
 
 
 import xml.etree.cElementTree
 
@@ -14,7 +15,7 @@ try:
        setupfile = file('data/setup.xml', 'r')
 except:
        # if not found in the current path, we use the global datadir-path
        setupfile = file('data/setup.xml', 'r')
 except:
        # if not found in the current path, we use the global datadir-path
-       setupfile = file('/usr/share/enigma2/setup.xml', 'r')
+       setupfile = file(eEnv.resolve('${datadir}/enigma2/setup.xml'), 'r')
 setupdom = xml.etree.cElementTree.parse(setupfile)
 setupfile.close()
 
 setupdom = xml.etree.cElementTree.parse(setupfile)
 setupfile.close()
 
index a752d31cf66b31631e7e96062ddd5534654cb851..61e1d5ef2a827c7e2cfef9cd4c537d1c6ec59df7 100755 (executable)
@@ -10,7 +10,7 @@ from Components.ActionMap import NumberActionMap
 from Components.MenuList import MenuList
 from Components.ConfigList import ConfigList
 from Components.Sources.List import List
 from Components.MenuList import MenuList
 from Components.ConfigList import ConfigList
 from Components.Sources.List import List
-from enigma import eTimer
+from enigma import eTimer, eEnv
 
 from xml.sax import make_parser
 from xml.sax.handler import ContentHandler
 
 from xml.sax import make_parser
 from xml.sax.handler import ContentHandler
@@ -178,7 +178,7 @@ class Wizard(Screen):
                parser.setContentHandler(wizardHandler)
                for xmlfile in self.xmlfile:
                        if xmlfile[0] != '/':
                parser.setContentHandler(wizardHandler)
                for xmlfile in self.xmlfile:
                        if xmlfile[0] != '/':
-                               parser.parse('/usr/share/enigma2/' + xmlfile)
+                               parser.parse(eEnv.resolve('${datadir}/enigma2/') + xmlfile)
                        else:
                                parser.parse(xmlfile)
 
                        else:
                                parser.parse(xmlfile)
 
index 8ed2c8a46017951c8702db09bd1047d3a6094c99..518db49d31501b80d92930ceda42bde23d236be6 100755 (executable)
@@ -3,6 +3,7 @@
 from os import path as os_path, mkdir, rmdir, system, walk, stat as os_stat, listdir, readlink, makedirs, error as os_error, symlink, access, F_OK, R_OK, W_OK
 from stat import S_IMODE
 from re import compile
 from os import path as os_path, mkdir, rmdir, system, walk, stat as os_stat, listdir, readlink, makedirs, error as os_error, symlink, access, F_OK, R_OK, W_OK
 from stat import S_IMODE
 from re import compile
+from enigma import eEnv
 
 try:
        from os import chmod
 
 try:
        from os import chmod
@@ -39,26 +40,26 @@ PATH_CREATE = 0
 PATH_DONTCREATE = 1
 PATH_FALLBACK = 2
 defaultPaths = {
 PATH_DONTCREATE = 1
 PATH_FALLBACK = 2
 defaultPaths = {
-               SCOPE_TRANSPONDERDATA: ("/etc/", PATH_DONTCREATE),
-               SCOPE_SYSETC: ("/etc/", PATH_DONTCREATE),
-               SCOPE_FONTS: ("/usr/share/fonts/", PATH_DONTCREATE),
-               SCOPE_CONFIG: ("/etc/enigma2/", PATH_CREATE),
-               SCOPE_PLUGINS: ("/usr/lib/enigma2/python/Plugins/", PATH_CREATE),
+               SCOPE_TRANSPONDERDATA: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE),
+               SCOPE_SYSETC: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE),
+               SCOPE_FONTS: (eEnv.resolve("${datadir}/fonts/"), PATH_DONTCREATE),
+               SCOPE_CONFIG: (eEnv.resolve("${sysconfdir}/enigma2/"), PATH_CREATE),
+               SCOPE_PLUGINS: (eEnv.resolve("${libdir}/enigma2/python/Plugins/"), PATH_CREATE),
 
 
-               SCOPE_LANGUAGE: ("/usr/share/enigma2/po/", PATH_DONTCREATE),
+               SCOPE_LANGUAGE: (eEnv.resolve("${datadir}/enigma2/po/"), PATH_DONTCREATE),
 
 
-               SCOPE_SKIN: ("/usr/share/enigma2/", PATH_DONTCREATE),
-               SCOPE_SKIN_IMAGE: ("/usr/share/enigma2/", PATH_DONTCREATE),
+               SCOPE_SKIN: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE),
+               SCOPE_SKIN_IMAGE: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE),
                SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE),
                SCOPE_MEDIA: ("/media/", PATH_DONTCREATE),
                SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE),
                SCOPE_MEDIA: ("/media/", PATH_DONTCREATE),
-               SCOPE_PLAYLIST: ("/etc/enigma2/playlist/", PATH_CREATE),
+               SCOPE_PLAYLIST: (eEnv.resolve("${sysconfdir}/enigma2/playlist/"), PATH_CREATE),
                
                SCOPE_USERETC: ("", PATH_DONTCREATE), # user home directory
                
                
                SCOPE_USERETC: ("", PATH_DONTCREATE), # user home directory
                
-               SCOPE_DEFAULTDIR: ("/usr/share/enigma2/defaults/", PATH_CREATE),
+               SCOPE_DEFAULTDIR: (eEnv.resolve("${datadir}/enigma2/defaults/"), PATH_CREATE),
                SCOPE_DEFAULTPARTITION: ("/dev/mtdblock/6", PATH_DONTCREATE),
                SCOPE_DEFAULTPARTITION: ("/dev/mtdblock/6", PATH_DONTCREATE),
-               SCOPE_DEFAULTPARTITIONMOUNTDIR: ("/usr/share/enigma2/dealer", PATH_CREATE),
-               SCOPE_METADIR: ("/usr/share/meta", PATH_CREATE),
+               SCOPE_DEFAULTPARTITIONMOUNTDIR: (eEnv.resolve("${datadir}/enigma2/dealer"), PATH_CREATE),
+               SCOPE_METADIR: (eEnv.resolve("${datadir}/meta"), PATH_CREATE),
        }
 
 FILE_COPY = 0 # copy files from fallback dir to the basedir
        }
 
 FILE_COPY = 0 # copy files from fallback dir to the basedir
@@ -67,7 +68,7 @@ PATH_COPY = 2 # copy the complete fallback dir to the basedir
 PATH_MOVE = 3 # move the fallback dir to the basedir (can be used for changes in paths)
 fallbackPaths = {
                SCOPE_CONFIG: [("/home/root/", FILE_MOVE),
 PATH_MOVE = 3 # move the fallback dir to the basedir (can be used for changes in paths)
 fallbackPaths = {
                SCOPE_CONFIG: [("/home/root/", FILE_MOVE),
-                                          ("/usr/share/enigma2/defaults/", FILE_COPY)],
+                                          (eEnv.resolve("${datadir}/enigma2/defaults/"), FILE_COPY)],
                SCOPE_HDD: [("/hdd/movies", PATH_MOVE)]
        }
 
                SCOPE_HDD: [("/hdd/movies", PATH_MOVE)]
        }
 
index 68b5d57145d2ec40a9eb772b13d5f9bce328ebe7..c03628329581bd97cc02cacb8a5e5a4e938bd59b 100755 (executable)
@@ -2,6 +2,7 @@
 #include <signal.h>
 #include <asm/ptrace.h>
 
 #include <signal.h>
 #include <asm/ptrace.h>
 
+#include <lib/base/eenv.h>
 #include <lib/base/eerror.h>
 #include <lib/base/smartptr.h>
 #include <lib/base/nconfig.h>
 #include <lib/base/eerror.h>
 #include <lib/base/smartptr.h>
 #include <lib/base/nconfig.h>
@@ -65,7 +66,7 @@ static void addToLogbuffer(int level, const std::string &log)
 
 static std::string getConfigFileValue(const char *entry)
 {
 
 static std::string getConfigFileValue(const char *entry)
 {
-       std::string configfile = "/etc/enigma2/settings";
+       std::string configfile = eEnv::resolve("${sysconfdir}/enigma2/settings");
        std::string configvalue;
        if (entry)
        {
        std::string configvalue;
        if (entry)
        {
@@ -140,8 +141,8 @@ static std::string getFileContent(const char *file)
        return filecontent;
 }
 
        return filecontent;
 }
 
-static std::string execCommand(char* cmd) {
-       FILE* pipe = popen(cmd, "r");
+static std::string execCommand(std::string cmd) {
+       FILE* pipe = popen(cmd.c_str(), "r");
        if (!pipe)
                return "Error";
        char buffer[STDBUFFER_SIZE];
        if (!pipe)
                return "Error";
        char buffer[STDBUFFER_SIZE];
@@ -156,11 +157,6 @@ static std::string execCommand(char* cmd) {
        return result;
 }
 
        return result;
 }
 
-extern std::string execCommand();
-extern std::string getConfigFileValue();
-extern std::string getFileContent();
-extern std::string getLogBuffer();
-
 #define INFOFILE "/maintainer.info"
 
 void bsodFatal(const char *component)
 #define INFOFILE "/maintainer.info"
 
 void bsodFatal(const char *component)
@@ -274,7 +270,7 @@ void bsodFatal(const char *component)
                                        dreamboxca[strlen(dreamboxca)-1] = 0;
                                fprintf(f, "\t\t<dreamboxca>\n\t\t<![CDATA[\n%s\n\t\t]]>\n\t\t</dreamboxca>\n", dreamboxca);
                        }
                                        dreamboxca[strlen(dreamboxca)-1] = 0;
                                fprintf(f, "\t\t<dreamboxca>\n\t\t<![CDATA[\n%s\n\t\t]]>\n\t\t</dreamboxca>\n", dreamboxca);
                        }
-                       std::string settings = getFileContent("/etc/enigma2/settings");
+                       std::string settings = getFileContent(eEnv::resolve("${sysconfdir}/enigma2/settings").c_str());
                        if (settings != "Error")
                        {
                                fprintf(f, "\t\t<enigma2settings>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2settings>\n", settings.c_str());
                        if (settings != "Error")
                        {
                                fprintf(f, "\t\t<enigma2settings>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2settings>\n", settings.c_str());
@@ -336,7 +332,7 @@ void bsodFatal(const char *component)
                fprintf(f, "\t<crashlogs>\n");
                std::string buffer = getLogBuffer();
                fprintf(f, "\t\t<enigma2crashlog>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2crashlog>\n", buffer.c_str());
                fprintf(f, "\t<crashlogs>\n");
                std::string buffer = getLogBuffer();
                fprintf(f, "\t\t<enigma2crashlog>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2crashlog>\n", buffer.c_str());
-               std::string pythonmd5 = execCommand("find /usr/lib/enigma2/python/ -name \"*.py\" | xargs md5sum");
+               std::string pythonmd5 = execCommand("find " + eEnv::resolve("${libdir}/enigma2/python/") + " -name \"*.py\" | xargs md5sum");
                fprintf(f, "\t\t<pythonMD5sum>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</pythonMD5sum>\n", pythonmd5.c_str());
                fprintf(f, "\t</crashlogs>\n");
 
                fprintf(f, "\t\t<pythonMD5sum>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</pythonMD5sum>\n", pythonmd5.c_str());
                fprintf(f, "\t</crashlogs>\n");
 
index 144e2d3a658ff02b81a94c839309c2732dd3442b..328fba444e8bf803bfdb9bb15b5cb203a2e2b578 100644 (file)
@@ -1,6 +1,7 @@
 #include <stdio.h>
 #include <libsig_comp.h>
 #include <lib/base/ebase.h>
 #include <stdio.h>
 #include <libsig_comp.h>
 #include <lib/base/ebase.h>
+#include <lib/base/eenv.h>
 #include <lib/base/eerror.h>
 #include <lib/base/init.h>
 #include <lib/base/init_num.h>
 #include <lib/base/eerror.h>
 #include <lib/base/init.h>
 #include <lib/base/init_num.h>
@@ -67,7 +68,7 @@ int main()
                pal[a | 0x10] = (0x111111 * a) | 0xFF;
        p.setPalette(pal, 0, 256);
 
                pal[a | 0x10] = (0x111111 * a) | 0xFF;
        p.setPalette(pal, 0, 256);
 
-       fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Regular", 100);
+       fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100);
 
        p.resetClip(gRegion(eRect(0, 0, 720, 576)));
        
 
        p.resetClip(gRegion(eRect(0, 0, 720, 576)));
        
index e53fccab75cbe9220830bfc7422296c59af20cb8..2ba61067081851c6fda7562210464b52ab0c92fb 100644 (file)
@@ -67,7 +67,7 @@ int main()
                pal[a | 0x10] = (0x111111 * a) | 0xFF;
        p.setPalette(pal, 0, 256);
 
                pal[a | 0x10] = (0x111111 * a) | 0xFF;
        p.setPalette(pal, 0, 256);
 
-       fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Regular", 100);
+       fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100);
 
        eWidgetDesktop dsk(eSize(720, 576));
        dsk.setDC(my_dc);
 
        eWidgetDesktop dsk(eSize(720, 576));
        dsk.setDC(my_dc);
index b3364679e98e3029da1e97d4797222b3bd0f5753..882af996eed3b4112cb71f40bd4edbf33a6da4cb 100644 (file)
@@ -9,6 +9,7 @@
 #include <lib/driver/rc.h>
 #include <lib/base/ioprio.h>
 #include <lib/base/ebase.h>
 #include <lib/driver/rc.h>
 #include <lib/base/ioprio.h>
 #include <lib/base/ebase.h>
+#include <lib/base/eenv.h>
 #include <lib/base/eerror.h>
 #include <lib/base/init.h>
 #include <lib/base/init_num.h>
 #include <lib/base/eerror.h>
 #include <lib/base/init.h>
 #include <lib/base/init_num.h>
@@ -136,7 +137,7 @@ int main(int argc, char **argv)
        gst_init(&argc, &argv);
 
        // set pythonpath if unset
        gst_init(&argc, &argv);
 
        // set pythonpath if unset
-       setenv("PYTHONPATH", LIBDIR "/enigma2/python", 0);
+       setenv("PYTHONPATH", eEnv::resolve("${libdir}/enigma2/python").c_str(), 0);
        printf("PYTHONPATH: %s\n", getenv("PYTHONPATH"));
        
        bsodLogInit();
        printf("PYTHONPATH: %s\n", getenv("PYTHONPATH"));
        
        bsodLogInit();
@@ -186,7 +187,7 @@ int main(int argc, char **argv)
        dsk_lcd.setDC(my_lcd_dc);
 
        ePtr<gPixmap> m_pm;
        dsk_lcd.setDC(my_lcd_dc);
 
        ePtr<gPixmap> m_pm;
-       loadPNG(m_pm, DATADIR "/enigma2/skin_default/pal.png");
+       loadPNG(m_pm, eEnv::resolve("${datadir}/enigma2/skin_default/pal.png").c_str());
        if (!m_pm)
        {
                eFatal("pal.png not found!");
        if (!m_pm)
        {
                eFatal("pal.png not found!");
@@ -209,14 +210,16 @@ int main(int argc, char **argv)
                ePtr<gPixmap> wait[MAX_SPINNER];
                for (i=0; i<MAX_SPINNER; ++i)
                {
                ePtr<gPixmap> wait[MAX_SPINNER];
                for (i=0; i<MAX_SPINNER; ++i)
                {
-                       char filename[strlen(DATADIR) + 41];
-                       sprintf(filename, DATADIR "/enigma2/skin_default/spinner/wait%d.png", i + 1);
-                       loadPNG(wait[i], filename);
+                       char filename[64];
+                       std::string rfilename;
+                       snprintf(filename, sizeof(filename), "${datadir}/enigma2/skin_default/spinner/wait%d.png", i + 1);
+                       rfilename = eEnv::resolve(filename);
+                       loadPNG(wait[i], rfilename.c_str());
                        
                        if (!wait[i])
                        {
                                if (!i)
                        
                        if (!wait[i])
                        {
                                if (!i)
-                                       eDebug("failed to load %s! (%m)", filename);
+                                       eDebug("failed to load %s! (%m)", rfilename.c_str());
                                else
                                        eDebug("found %d spinner!\n", i);
                                break;
                                else
                                        eDebug("found %d spinner!\n", i);
                                break;
@@ -239,7 +242,7 @@ int main(int argc, char **argv)
        setIoPrio(IOPRIO_CLASS_BE, 3);
 
 //     python.execute("mytest", "__main__");
        setIoPrio(IOPRIO_CLASS_BE, 3);
 
 //     python.execute("mytest", "__main__");
-       python.execFile("/usr/lib/enigma2/python/mytest.py");
+       python.execFile(eEnv::resolve("${libdir}/enigma2/python/mytest.py").c_str());
 
        extern void setFullsize(); // definend in lib/gui/evideo.cpp
        setFullsize();
 
        extern void setFullsize(); // definend in lib/gui/evideo.cpp
        setFullsize();