python-gallery/packages/onlylegsSass.py
Michał 463c5ecd03 Themes can now include font files
Updated example env
New fonts added to default theme
2023-01-06 23:46:12 +00:00

95 lines
3.1 KiB
Python

import time
import sys
import shutil
import os
class Sassy():
def __init__(self, theme):
print("### OnlyLegs Theme Manager ###")
try:
import sass
except ImportError:
print("Could not find libsass!")
print("Exiting...")
sys.exit(1)
theme_path = os.path.join('usr', 'themes', theme, 'style.scss')
if os.path.exists(theme_path):
print(f"Theme '{theme}' found at:", theme_path)
self.sass = sass
self.loadTheme(theme_path)
else:
print("No theme found!")
print("Exiting...")
sys.exit(1)
font_path = os.path.join('usr', 'themes', theme, 'fonts')
if os.path.exists(font_path):
print("Fonts found at:", font_path)
self.loadFonts(font_path)
else:
print("No fonts found!")
print("Done!\n")
def loadTheme (self, theme):
with open('static/css/style.css', 'w') as f:
try:
f.write(self.sass.compile(filename=theme, output_style='compressed'))
print("Compiled successfully to:", f.name)
except self.sass.CompileError as e:
print("Failed to compile!\nFull error:", e)
print("Exiting...")
sys.exit(1)
def loadFonts (self, font_path):
dest = os.path.join('static', 'css', 'fonts')
if os.path.exists(dest):
print("Removing old fonts...")
try:
shutil.rmtree(dest)
print("Removed old fonts!")
except Exception as e:
print("Failed to remove old fonts!\nFull error:", e)
print("Exiting...")
sys.exit(1)
try:
shutil.copytree(font_path, dest)
print("Copied fonts to:", dest)
except Exception as e:
print("Failed to copy fonts!\nFull error:", e)
print("Exiting...")
sys.exit(1)
#print ("Removing old fonts from:", dest)
#for old in os.listdir(dest):
# dir = os.path.join(dest , old)
#
# try:
# if os.path.isfile(dir) or os.path.islink(dir):
# os.unlink(dir)
# print("Removed:", old)
# elif os.path.isdir(dir):
# shutil.rmtree(dir)
# print("Removed:", old)
# except Exception as e:
# print("Failed to remove:", dir)
# print("Full error:", e)
#print ("Loading new fonts")
#for font in os.listdir(font_path):
# dir = os.path.join(font_path, dest)
# new_dir = os.path.join(dest, font)
#
# try:
# if os.path.isfile(dir):
# shutil.copy(dir, new_dir)
# print("Copied font:", font)
# except Exception as e:
# print("Failed to copy font:", font)
# print("Full error:", e)