import logging import shutil from pathlib import Path import os from .config import SOURCE_DIRECTORY, DIST_DIRECTORY, STATIC_DIRECTORY logger = logging.getLogger("stsg.build") def copy_static(): src = str(Path(SOURCE_DIRECTORY, STATIC_DIRECTORY)) dst = str(Path(DIST_DIRECTORY, STATIC_DIRECTORY)) if not os.path.exists(src): logger.warn("The static folder '%s' wasn't defined.", src) return logger.info("copying static files from '%s' to '%r'", src, dst) os.makedirs(dst, exist_ok=True) for root, dirs, files in os.walk(src): if any(p.startswith(".") for p in Path(root).parts): continue # Compute relative path from the source root rel_path = os.path.relpath(root, src) dest_dir = os.path.join(dst, rel_path) os.makedirs(dest_dir, exist_ok=True) for file in files: if file.startswith("."): continue src_file = os.path.join(root, file) dest_file = os.path.join(dest_dir, file) shutil.copy2(src_file, dest_file) print(src, dst) def build(): logger.info("building static page") copy_static()