diff --git a/imptune/api/packages.py b/imptune/api/packages.py index 2877c81..387e7de 100644 --- a/imptune/api/packages.py +++ b/imptune/api/packages.py @@ -2,6 +2,7 @@ import io import json import os +import shutil import tempfile import zipfile @@ -9,7 +10,7 @@ from fastapi import APIRouter from fastapi.responses import PlainTextResponse, Response import imptune.config as cfg -from imptune.db.models import Printer +from imptune.db.models import Icon, Printer from imptune.generators.intunewin_builder import build_intunewin from imptune.generators.script_generator import render_detect, render_install, render_uninstall @@ -144,6 +145,13 @@ def get_intunewin_package(printer_id: int): with zipfile.ZipFile(driver_zip_path, "r") as driver_zf: driver_zf.extractall(drivers_subdir) + # Copy icon into staging if one exists for this printer + icon_record = Icon.get_or_none(Icon.printer == printer.id) + if icon_record is not None: + icon_src = os.path.join(cfg.ICONS_DIR, icon_record.sha256) + if os.path.isfile(icon_src): + shutil.copy2(icon_src, os.path.join(tmpdir, "icon.png")) + # Build .intunewin output_path = os.path.join(tmpdir, "out.intunewin") build_intunewin(tmpdir, "install.ps1", output_path)