from pathlib import Path
import sys
path = Path(sys.argv[1])
text = path.read_text(encoding='utf-8')
if 'equipment: reference.equipment && typeof reference.equipment === "object"' in text:
    print('viewer equipment already present')
    raise SystemExit(0)
needle = '\t\t\t\t\tsource_type: reference.sourceType || "",\n'
addition = needle + '\t\t\t\t\tequipment: reference.equipment && typeof reference.equipment === "object" ? {\n\t\t\t\t\t\tid: String(reference.equipment.id || ""),\n\t\t\t\t\t\tname: String(reference.equipment.name || ""),\n\t\t\t\t\t\tnumber: String(reference.equipment.number || "")\n\t\t\t\t\t} : null,\n'
if text.count(needle) != 1:
    raise SystemExit(f'expected one viewer insertion point, found {text.count(needle)}')
path.write_text(text.replace(needle, addition, 1), encoding='utf-8')
print('viewer equipment patched')
