update
This commit is contained in:
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python3
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def digest(path: Path) -> str:
|
||||
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--output", type=Path, required=True)
|
||||
arguments = parser.parse_args()
|
||||
root = arguments.output
|
||||
root.mkdir(parents=True)
|
||||
(root / "nested").mkdir()
|
||||
payload = bytearray()
|
||||
for offset in range(384 * 1024):
|
||||
payload.append(((offset * 131) ^ (offset >> 3) ^ 0x5A) & 0xFF)
|
||||
(root / "payload.bin").write_bytes(payload)
|
||||
(root / "nested" / "alpha.txt").write_text(
|
||||
"Pre15 deterministic smoke fixture\n", encoding="ascii"
|
||||
)
|
||||
(root / "empty").write_bytes(b"")
|
||||
files = []
|
||||
for path in sorted(item for item in root.rglob("*") if item.is_file()):
|
||||
files.append(
|
||||
{
|
||||
"path": path.relative_to(root).as_posix(),
|
||||
"sha256": digest(path),
|
||||
"size": path.stat().st_size,
|
||||
}
|
||||
)
|
||||
manifest = {
|
||||
"files": files,
|
||||
"nested_entries": ["alpha.txt"],
|
||||
"root_entries": ["empty", "nested", "payload.bin"],
|
||||
"status": "READY",
|
||||
}
|
||||
print(json.dumps(manifest, indent=2, sort_keys=True))
|
||||
Reference in New Issue
Block a user