import asyncio
import shutil
import tempfile
from pathlib import Path
from mirage import MountMode, Workspace
from mirage.resource.disk import DiskResource
DATA_DIR = Path("/path/to/files")
tmp = tempfile.mkdtemp()
shutil.copytree(DATA_DIR, Path(tmp) / "files", dirs_exist_ok=True)
resource = DiskResource(root=tmp + "/files")
async def main() -> None:
ws = Workspace({"/data/": resource}, mode=MountMode.READ)
r = await ws.execute("ls /data/")
print(await r.stdout_str())
r = await ws.execute("cat /data/example.json")
print(await r.stdout_str())
r = await ws.execute("tree /data/")
print(await r.stdout_str())
r = await ws.execute("find /data/ -name '*.json'")
print(await r.stdout_str())
r = await ws.execute("grep example /data/example.json")
print(await r.stdout_str())
r = await ws.execute("stat /data/example.json")
print(await r.stdout_str())
if __name__ == "__main__":
asyncio.run(main())