X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/beee08d9e6f0a55b46a9668dbcdd5ae8e0acf253..21ad640445f0812c5fa954015a3389e4824dc5e1:/lib/python/Tools/Directories.py diff --git a/lib/python/Tools/Directories.py b/lib/python/Tools/Directories.py index 003d9a8e..64c44cb2 100644 --- a/lib/python/Tools/Directories.py +++ b/lib/python/Tools/Directories.py @@ -6,26 +6,45 @@ SCOPE_FONTS = 2 SCOPE_SKIN = 3 SCOPE_SKIN_IMAGE = 4 SCOPE_USERETC = 5 +SCOPE_CONFIG = 6 +SCOPE_LANGUAGE = 7 +SCOPE_HDD = 8 + +PATH_CREATE = 0 +PATH_DONTCREATE = 1 defaultPaths = { - SCOPE_TRANSPONDERDATA: "/etc/", - SCOPE_SYSETC: "/etc/", - SCOPE_FONTS: "/usr/share/fonts/", + SCOPE_TRANSPONDERDATA: ("/etc/", PATH_DONTCREATE), + SCOPE_SYSETC: ("/etc/", PATH_DONTCREATE), + SCOPE_FONTS: ("/usr/share/fonts/", PATH_DONTCREATE), + SCOPE_CONFIG: ("/etc/enigma2/", PATH_CREATE), + + SCOPE_LANGUAGE: ("/usr/share/enigma2/po/", PATH_CREATE), - SCOPE_SKIN: "/usr/share/tuxbox/enigma2/", - SCOPE_SKIN_IMAGE: "/usr/share/tuxbox/enigma2/", + SCOPE_SKIN: ("/usr/share/enigma2/", PATH_DONTCREATE), + SCOPE_SKIN_IMAGE: ("/usr/share/enigma2/", PATH_DONTCREATE), + SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE), - SCOPE_USERETC: "" # user home directory + SCOPE_USERETC: ("", PATH_DONTCREATE) # user home directory } -def resolveFilename(scope, base): +def resolveFilename(scope, base = ""): # in future, we would check for file existence here, # so we can provide default/fallbacks. + path = defaultPaths[scope] + if path[1] == PATH_CREATE: + if (not pathExists(scope)): + os.mkdir(path[0]) + # FIXME: we also have to handle DATADIR etc. here. - return defaultPaths[scope] + base + return path[0] + base # this is only the BASE - an extension must be added later. + +def pathExists(scope): + return os.path.exists(defaultPaths[scope][0]) + def getRecordingFilename(basename): # filter out non-allowed characters @@ -39,7 +58,7 @@ def getRecordingFilename(basename): i = 0 while True: - path = "/hdd/movies/" + filename + path = resolveFilename(SCOPE_HDD, filename) if i > 0: path += "_%03d" % i try: @@ -47,3 +66,9 @@ def getRecordingFilename(basename): i += 1 except IOError: return path + +# this fixes paths or files when changed in a new enigma2 version +def fixOldDirectoryEntries(): + if (os.path.exists("/hdd/movies")): + if (not os.path.exists(resolveFilename(SCOPE_HDD))): + os.system("mv /hdd/movies " + resolveFilename(SCOPE_HDD))