123456789101112131415161718192021222324252627282930313233343536373839(*****************************************************************************)(* *)(* SPDX-License-Identifier: MIT *)(* Copyright (c) 2025 Nomadic Labs <contact@nomadic-labs.com> *)(* *)(*****************************************************************************)(* System capability implementation living in miaou_interfaces.
This lets other libraries depend on the small interfaces package. *)moduleCapability=Capabilitytypefile_read=string->(string,string)resulttypefile_write=string->string->(unit,string)resulttyperun_result={exit_code:int;stdout:string;stderr:string}typet={file_exists:string->bool;is_directory:string->bool;read_file:file_read;write_file:file_write;mkdir:string->(unit,string)result;run_command:argv:stringlist->cwd:stringoption->(run_result,string)result;get_current_user_info:unit->(string*string,string)result;get_disk_usage:path:string->(int64,string)result;list_dir:string->(stringlist,string)result;probe_writable:path:string->(bool,string)result;get_env_var:string->stringoption;}letkey:tCapability.key=Capability.create~name:"System"letsetv=Capability.setkeyvletget()=Capability.getkeyletrequire()=Capability.requirekey