#!/usr/bin/env python3
"""Frozen reviewed files only, copied into existing private source. No vendor/runtime bundle."""
import hashlib
import pathlib
import sys
import tarfile

here=pathlib.Path(__file__).resolve().parent
workspace=here.parents[4]
business=workspace/'zhctproject'/'store'
base=(here.parent/'parallel-store-hardware-correction-owned-20261010'/'SOURCE_SHA256.txt').read_text().splitlines()
files=[x.split(None,1)[1] for x in base]
files += ['application/p/controller/Equipment.php','application/p/logic/Equipment.php',
 'application/model/Equipment.php','application/model/EquipmentVersion.php','application/model/Recipes.php',
 'application/model/DateMenu.php','application/model/Dish.php','application/model/Dishes.php',
 'application/api/controller/Weigh.php','application/api/service/Weigh.php','application/api/model/Equipment.php',
 'application/api/model/Dishes.php','application/cores/BaseModel.php','application/common/service/BaseService.php',
 'application/common/model/Equipment.php','application/common/model/Dishes.php','application/common/model/DishesCate.php',
 'application/common/enum/EquipmentType.php','application/common/enum/EnumBasics.php','application/common/enum/ReceiptPrinterTemplate.php',
 'application/m/controller/Dishes.php','application/m/logic/Dishes.php','extend/oss/OSSServer.php']
files=sorted(set(files))
assert all((business/f).is_file() for f in files), str(business)
(here/'SOURCE_SHA256.txt').write_text(''.join(hashlib.sha256((business/f).read_bytes()).hexdigest()+'  '+f+'\n' for f in files))
with tarfile.open(sys.argv[1],'w:gz') as archive:
    for f in files:
        if not f.startswith('extend/'):
            archive.add(business/f,arcname='source/'+f,recursive=False)
    for p in here.iterdir():
        if p.is_file() and p.suffix in ['.php','.txt']:
            archive.add(p,arcname=p.name,recursive=False)
print('frozen_source_files='+str(len(files)))
