Browse Source

added create_theme_options function

pull/284/head
GilbN 4 years ago
parent
commit
82a6c8ad0a
  1. 35
      themes.py

35
themes.py

@ -1,6 +1,6 @@
from os import listdir from os import listdir
from os.path import isdir, isfile, join from os.path import isdir, isfile, join
from json import dump, dumps, loads from json import dump, dumps, loads, load
import subprocess import subprocess
import shutil import shutil
@ -90,7 +90,7 @@ def create_json(app_folders: list = None, themes: list = None, community_themes:
return dumps(THEMES_DICT) return dumps(THEMES_DICT)
else: else:
ADDONS = loads(create_addons_json()) ADDONS = loads(create_addons_json())
APPS = {"applications": {}} APPS = {}
app_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/base/*base.css"]) app_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/base/*base.css"])
SHAS = get_shas(app_shas) SHAS = get_shas(app_shas)
APPS.update(dict(sorted({ APPS.update(dict(sorted({
@ -101,6 +101,14 @@ def create_json(app_folders: list = None, themes: list = None, community_themes:
} for app in app_folders if not isfile(f'./css/base/{app}/.deprecated') } for app in app_folders if not isfile(f'./css/base/{app}/.deprecated')
} }
}.items()))) }.items())))
APPS.update(dict(sorted({
"deprecated": {
app: {
"base_css": f"https://{DOMAIN}/css/base/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}",
"addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {}
} for app in app_folders if isfile(f'./css/base/{app}/.deprecated')
}
}.items())))
THEMES = loads(create_json(themes=themes, community_themes=community_themes, no_sub_folders=True)) THEMES = loads(create_json(themes=themes, community_themes=community_themes, no_sub_folders=True))
APPS.update(ADDONS) APPS.update(ADDONS)
APPS.update(THEMES) APPS.update(THEMES)
@ -117,20 +125,37 @@ def temporary_copy_files():
"./css/addons/": "./CSS/addons", "./css/addons/": "./CSS/addons",
"./css/defaults/": "./CSS/defaults", "./css/defaults/": "./CSS/defaults",
"./css/theme-options/organizr.css": "./CSS/variables/organizr-dark.css" "./css/theme-options/organizr.css": "./CSS/variables/organizr-dark.css"
} }
for src in src_dst: for src in src_dst:
if ".css" in src: if ".css" in src:
shutil.copy(src,src_dst[src]) shutil.copy(src,src_dst[src])
continue continue
shutil.copytree(src,src_dst[src],dirs_exist_ok=True) shutil.copytree(src,src_dst[src],dirs_exist_ok=True)
def create_theme_options():
def create_app(folder):
with open(f"{folder}/{app}/{theme.lower()}.css", "w") as create_app:
content = f'@import url("{applications[app]["base_css"]}");\n@import url("{themes[theme]["url"]}");'
create_app.write(content)
with open("themes.json") as themes:
data = load(themes)
themes = data["all-themes"]
applications = data["applications"]
for app in applications:
for theme in themes:
folders = ["./CSS/themes","./css/base"]
for folder in folders:
create_app(folder)
if __name__ == "__main__": if __name__ == "__main__":
app_folders = [name for name in listdir('./css/base') if isdir(join('./css/base', name))] app_folders = [name for name in listdir('./css/base') if isdir(join('./css/base', name))]
themes = [name for name in listdir('./css/theme-options') if isfile(join('./css/theme-options', name))] themes = [name for name in listdir('./css/theme-options') if isfile(join('./css/theme-options', name))]
community_themes = [name for name in listdir('./css/community-theme-options') if isfile(join('./css/community-theme-options', name))] community_themes = [name for name in listdir('./css/community-theme-options') if isfile(join('./css/community-theme-options', name))]
with open("CNAME", "rt", closefd=True) as cname: with open("CNAME", "rt", closefd=True) as cname:
DOMAIN= cname.readline() DOMAIN = cname.readline()
apps = loads(create_json(app_folders=app_folders, themes=themes, community_themes=community_themes)) apps = loads(create_json(app_folders=app_folders, themes=themes, community_themes=community_themes))
with open("themes.json", "w") as outfile: with open("themes.json", "w") as outfile:
dump(apps, outfile, indent=2, sort_keys=True) dump(apps, outfile, indent=2, sort_keys=True)
temporary_copy_files() temporary_copy_files()
create_theme_options()
Loading…
Cancel
Save