8 from xdg import BaseDirectory as _BaseDirectory
9 BaseDirectory = _BaseDirectory
14 _moduleLogger = logging.getLogger(__name__)
20 def set_process_name(name):
21 try: # change process name for killall
25 _libc = ctypes.CDLL('libc.so.6')
26 _libc.prctl(15, name, 0, 0, 0)
28 _moduleLogger.warning('Unable to set processName: %s" % e')
31 def get_new_resource(resourceType, resource, name):
32 if BaseDirectory is not None:
33 if resourceType == "data":
34 base = BaseDirectory.xdg_data_home
35 if base == "/usr/share/mime":
36 # Ugly hack because somehow Maemo 4.1 seems to be set to this
37 base = os.path.join(os.path.expanduser("~"), ".%s" % resource)
38 elif resourceType == "config":
39 base = BaseDirectory.xdg_config_home
40 elif resourceType == "cache":
41 base = BaseDirectory.xdg_cache_home
43 raise RuntimeError("Unknown type: "+resourceType)
45 base = os.path.join(os.path.expanduser("~"), ".%s" % resource)
47 filePath = os.path.join(base, resource, name)
48 dirPath = os.path.dirname(filePath)
49 if not os.path.exists(dirPath):
50 # Looking before I leap to not mask errors
56 def get_existing_resource(resourceType, resource, name):
57 if BaseDirectory is not None:
58 if resourceType == "data":
59 base = BaseDirectory.xdg_data_home
60 elif resourceType == "config":
61 base = BaseDirectory.xdg_config_home
62 elif resourceType == "cache":
63 base = BaseDirectory.xdg_cache_home
65 raise RuntimeError("Unknown type: "+resourceType)
70 finalPath = os.path.join(base, name)
71 if os.path.exists(finalPath):
74 altBase = os.path.join(os.path.expanduser("~"), ".%s" % resource)
75 finalPath = os.path.join(altBase, name)
76 if os.path.exists(finalPath):
79 raise RuntimeError("Resource not found: %r" % ((resourceType, resource, name), ))