forked from linuxmint/cinnamon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
generate_cs_module_desktop_files.py
executable file
·63 lines (48 loc) · 1.79 KB
/
generate_cs_module_desktop_files.py
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
#!/usr/bin/python3
import os
import gettext
import glob
import sys
from mintcommon import additionalfiles
import traceback
DOMAIN = "cinnamon"
PATH = "/usr/share/locale"
os.environ['LANGUAGE'] = "en_US.UTF-8"
gettext.install(DOMAIN, PATH)
try:
sys.path.append('files/usr/share/cinnamon/cinnamon-settings')
sys.path.append('files/usr/share/cinnamon/cinnamon-settings/modules')
sys.path.append('files/usr/share/cinnamon/cinnamon-settings/bin')
mod_files = glob.glob('files/usr/share/cinnamon/cinnamon-settings/modules/*.py')
mod_files.sort()
if len(mod_files) == 0:
print("No settings modules found!!")
sys.exit(1)
mod_files = [x.split('/')[-1].split('.')[0] for x in mod_files]
for mod_file in mod_files:
if mod_file[0:3] != "cs_":
raise Exception("Settings modules must have a prefix of 'cs_' !!")
modules = map(__import__, mod_files)
except Exception as detail:
print(detail)
sys.exit(1)
for module in modules:
try:
mod = module.Module(None)
if mod.category in "admin":
category = "Settings;System;"
else:
category = "Settings;"
formatted_keywords = mod.sidePage.keywords.replace(",", ";")
formatted_keywords = formatted_keywords.replace(", ", ";")
prefix = """[Desktop Entry]
Icon=%(icon)s
Exec=cinnamon-settings %(module)s
Type=Application
OnlyShowIn=X-Cinnamon;
Categories=Settings;
""" % {'module': mod.name, 'category': category, 'icon': mod.sidePage.icon}
additionalfiles.generate(DOMAIN, PATH, "files/usr/share/applications/cinnamon-settings-%s.desktop" % mod.name, prefix, mod.sidePage.name, mod.comment, "", None, mod.sidePage.keywords)
except Exception:
print("Failed to load module %s" % module)
traceback.print_exc()