mirror of
https://github.com/FULU-Foundation/OrcaSlicer-bambulab.git
synced 2026-05-14 00:42:32 -07:00
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
import argparse, hashlib, json
|
|
from pathlib import Path
|
|
|
|
def sha256(p: Path) -> str:
|
|
h = hashlib.sha256()
|
|
with p.open('rb') as f:
|
|
for chunk in iter(lambda: f.read(1024 * 1024), b''):
|
|
h.update(chunk)
|
|
return h.hexdigest()
|
|
|
|
def main():
|
|
ap = argparse.ArgumentParser()
|
|
ap.add_argument('plugin_dir', type=Path)
|
|
ap.add_argument('--abi-version', default='02.05.02.58')
|
|
ap.add_argument('--out', type=Path, default=None)
|
|
args = ap.parse_args()
|
|
net = args.plugin_dir / 'libbambu_networking.so'
|
|
src = args.plugin_dir / 'libBambuSource.so'
|
|
if not net.exists() or not src.exists():
|
|
raise SystemExit('missing linux payload files')
|
|
files = [
|
|
{'name': net.name, 'sha256': sha256(net), 'abi_version': args.abi_version},
|
|
{'name': src.name, 'sha256': sha256(src)},
|
|
]
|
|
for extra_name in ('liblive555.so', 'libagora_rtc_sdk.so', 'libagora-fdkaac.so'):
|
|
extra = args.plugin_dir / extra_name
|
|
if extra.exists():
|
|
files.append({'name': extra.name, 'sha256': sha256(extra)})
|
|
manifest = {'files': files}
|
|
out = args.out or (args.plugin_dir / 'linux_payload_manifest.json')
|
|
out.write_text(json.dumps(manifest, indent=2) + '\n')
|
|
print(out)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|