File size: 1,233 Bytes
09aeaeb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""Local bounded static-entry subset pilot, no execution or database admission."""

import argparse
import json
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "packages/core"))
from chameleon_core.entry_capture import capture_entry

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("source")
    parser.add_argument("entry")
    parser.add_argument("output")
    parser.add_argument("--additional-path", action="append", default=[])
    args = parser.parse_args()
    output = Path(args.output).resolve()
    if not output.is_relative_to(ROOT / ".local/repository-pilot") or output.exists():
        raise SystemExit("Fresh path inside repository pilot required")
    result = capture_entry(args.source, args.entry, additional_paths=args.additional_path)
    with output.open("x", encoding="utf-8") as stream:
        json.dump(result, stream)
    print(
        json.dumps(
            {
                "output": str(output),
                "digest": result["digest"],
                "files": len(result["repository"]["files"]),
                "projection": result["repository"]["projection"],
            }
        )
    )