1
0
mirror of https://github.com/gilbN/theme.park.git synced 2024-10-05 15:07:11 +02:00

pep8 formatting

This commit is contained in:
GilbN 2021-09-14 17:31:45 +02:00
parent fe8e159673
commit 8377a5617f

View File

@ -1,43 +1,48 @@
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
import subprocess import subprocess
def get_shas(output): def get_shas(output):
"""Returns a dict of CSS files and SHAs""" """Returns a dict of CSS files and SHAs"""
output_lines = output.splitlines() output_lines = output.splitlines()
sha_dict = {} sha_dict = {}
for line in output_lines: for line in output_lines:
line = line.decode('utf-8').replace("\t","").split(" ") line = line.decode('utf-8').replace("\t", "").split(" ")
sha = line[1] sha = line[1]
css_file = [file for file in line[2].split("/") if "css" in file][0] css_file = [file for file in line[2].split("/") if "css" in file][0]
sha_dict.update({css_file: sha}) sha_dict.update({css_file: sha})
return(sha_dict) return(sha_dict)
def create_addons_json(): def create_addons_json():
addon_shas = subprocess.check_output(["git", "ls-files", "-s", "./CSS/addons/*.css"]) addon_shas = subprocess.check_output(
["git", "ls-files", "-s", "./CSS/addons/*.css"])
SHAS = get_shas(addon_shas) SHAS = get_shas(addon_shas)
ADDONS = {"addons":{}} ADDONS = {"addons": {}}
addon_root = './CSS/addons' addon_root = './CSS/addons'
addon_folders = [name for name in listdir(addon_root) if isdir(join(addon_root, name))] addon_folders = [name for name in listdir(
addon_root) if isdir(join(addon_root, name))]
for app in addon_folders: for app in addon_folders:
app_addons = [addon for addon in listdir(f"{addon_root}/{app}")] app_addons = [addon for addon in listdir(f"{addon_root}/{app}")]
ADDONS["addons"].update({ ADDONS["addons"].update({
app: { app: {
addon: {} for addon in app_addons addon: {} for addon in app_addons
} }
}) })
for addon in app_addons: for addon in app_addons:
files = [file for file in listdir(f"{addon_root}/{app}/{addon}") if isfile(join(f"{addon_root}/{app}/{addon}", file))] files = [file for file in listdir(
f"{addon_root}/{app}/{addon}") if isfile(join(f"{addon_root}/{app}/{addon}", file))]
if len([f for f in files if f.endswith('.css')]) > 1: if len([f for f in files if f.endswith('.css')]) > 1:
ADDONS["addons"][app][addon].update({ ADDONS["addons"][app][addon].update({
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"] "css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"]
} }
) )
else: else:
ADDONS["addons"][app].update({ ADDONS["addons"][app].update({
addon: f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css" addon: f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"
} }
) )
extra_dirs = [dir for dir in listdir( extra_dirs = [dir for dir in listdir(
f"{addon_root}/{app}/{addon}") if isdir(join(f"{addon_root}/{app}/{addon}", dir))] f"{addon_root}/{app}/{addon}") if isdir(join(f"{addon_root}/{app}/{addon}", dir))]
@ -46,52 +51,58 @@ def create_addons_json():
extra_dir_files = [file for file in listdir( extra_dir_files = [file for file in listdir(
f"{addon_root}/{app}/{addon}/{dir}") if isfile(join(f"{addon_root}/{app}/{addon}/{dir}", file))] f"{addon_root}/{app}/{addon}/{dir}") if isfile(join(f"{addon_root}/{app}/{addon}/{dir}", file))]
ADDONS["addons"][app][addon].update({ ADDONS["addons"][app][addon].update({
dir: { dir: {
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{dir}/{extra_file}?sha={SHAS.get(extra_file)}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"] "css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{dir}/{extra_file}?sha={SHAS.get(extra_file)}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"]
} }
} }
) )
return dumps(ADDONS) return dumps(ADDONS)
def create_json(app_folders:list=None,themes:list=None,no_sub_folders=False):
def create_json(app_folders: list = None, themes: list = None, no_sub_folders=False):
if no_sub_folders: if no_sub_folders:
THEMES = {} THEMES = {}
theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./CSS/variables/*.css"]) theme_shas = subprocess.check_output(
["git", "ls-files", "-s", "./CSS/variables/*.css"])
SHAS = get_shas(theme_shas) SHAS = get_shas(theme_shas)
for theme in themes: for theme in themes:
THEMES.update({ THEMES.update({
"themes": { "themes": {
theme.split(".")[0].capitalize(): { theme.split(".")[0].capitalize(): {
"url": f"https://{DOMAIN}/CSS/variables/{theme}?sha={SHAS.get(theme)}" "url": f"https://{DOMAIN}/CSS/variables/{theme}?sha={SHAS.get(theme)}"
}for theme in themes }for theme in themes
} }
}) })
return dumps(THEMES) return dumps(THEMES)
else: else:
ADDONS = loads(create_addons_json()) ADDONS = loads(create_addons_json())
APPS = {"applications":{}} APPS = {"applications": {}}
app_shas = subprocess.check_output(["git", "ls-files", "-s", "./CSS/themes/*base.css"]) app_shas = subprocess.check_output(
["git", "ls-files", "-s", "./CSS/themes/*base.css"])
SHAS = get_shas(app_shas) SHAS = get_shas(app_shas)
for app in app_folders: for app in app_folders:
APPS.update({ APPS.update({
"applications":{ "applications": {
app: { app: {
"base_css": f"https://{DOMAIN}/CSS/themes/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}", "base_css": f"https://{DOMAIN}/CSS/themes/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}",
"addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {} "addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {}
} for app in app_folders } for app in app_folders
}
} }
}
) )
THEMES = loads(create_json(themes=themes,no_sub_folders=True)) THEMES = loads(create_json(themes=themes, no_sub_folders=True))
APPS.update(ADDONS) APPS.update(ADDONS)
APPS.update(THEMES) APPS.update(THEMES)
return dumps(APPS) return dumps(APPS)
if __name__== "__main__":
app_folders = [name for name in listdir('./CSS/themes') if isdir(join('./CSS/themes', name))] if __name__ == "__main__":
themes = [name for name in listdir('./CSS/variables') if isfile(join('./CSS/variables', name))] app_folders = [name for name in listdir(
DOMAIN = open("CNAME","rt",closefd=True).readline() './CSS/themes') if isdir(join('./CSS/themes', name))]
apps = loads(create_json(app_folders,themes)) themes = [name for name in listdir(
'./CSS/variables') if isfile(join('./CSS/variables', name))]
DOMAIN = open("CNAME", "rt", closefd=True).readline()
apps = loads(create_json(app_folders, themes))
with open("themes.json", "w") as outfile: with open("themes.json", "w") as outfile:
dump(apps, outfile,indent=2) dump(apps, outfile, indent=2)