def write_image_output_manifest(d):
    import json
    from pathlib import Path

    taskname = d.getVar("BB_CURRENTTASK")
    image_deploy_dir = Path(d.getVar('IMGDEPLOYDIR'))
    image_manifest_dir = Path(d.getVar('IMGMANIFESTDIR'))
    manifest_path = image_manifest_dir / ("do_" + d.getVar("BB_CURRENTTASK") + ".json")

    image_name = d.getVar("IMAGE_NAME")
    image_basename = d.getVar("IMAGE_BASENAME")
    machine = d.getVar("MACHINE")

    subimages = (d.getVarFlag("do_" + taskname, 'subimages', False) or "").split()
    imagetype = d.getVarFlag("do_" + taskname, 'imagetype', False)

    data = {
        "taskname": taskname,
        "imagetype": imagetype,
        "images": []
    }

    for type in subimages:
        image_filename = image_name + "." + type
        image_path = image_deploy_dir / image_filename
        if not image_path.exists():
            continue
        data["images"].append({
            "filename": image_filename,
        })

    with manifest_path.open("w") as f:
        json.dump([data], f)

write_image_output_manifest(d)

