aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Tools/Directories.py
blob: 64c44cb287e5828ed80ead8a8ffabe3a3108e175 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import os

SCOPE_TRANSPONDERDATA = 0
SCOPE_SYSETC = 1
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/", 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/enigma2/", PATH_DONTCREATE),
		SCOPE_SKIN_IMAGE: ("/usr/share/enigma2/", PATH_DONTCREATE),
		SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE),
		
		SCOPE_USERETC: ("", PATH_DONTCREATE) # user home directory
	}

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 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
	non_allowed_characters = "/.\\"
	
	filename = ""
	for c in basename:
		if c in non_allowed_characters:
			c = "_"
		filename += c
	
	i = 0
	while True:
		path = resolveFilename(SCOPE_HDD, filename)
		if i > 0:
			path += "_%03d" % i
		try:
			open(path + ".ts")
			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))