123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566(**************************************************************************)(* *)(* Copyright 2012-2015 OCamlPro *)(* Copyright 2012 INRIA *)(* *)(* All rights reserved. This file is distributed under the terms of the *)(* GNU Lesser General Public License version 2.1, with the special *)(* exception on linking described in the file LICENSE. *)(* *)(**************************************************************************)openOpamFilename.Opletcreaterootname=root/"repo"/OpamRepositoryName.to_stringnameletdownload_cacheroot=root/"download-cache"letpin_cache_dir=letdir=lazy(OpamSystem.mk_temp_dir~prefix:"opam-pin-cache"()|>OpamFilename.Dir.of_string)infun()->Lazy.forcedirletpin_cacheu=pin_cache_dir()/String.sub(OpamHash.contents@@OpamHash.compute_from_string~kind:`SHA512@@OpamUrl.to_stringu)016letreporepo_root=repo_root//"repo"|>OpamFile.makeletpackages_dirrepo_root=repo_root/"packages"letpackagesrepo_rootprefixnv=matchprefixwith|None->packages_dirrepo_root/OpamPackage.to_stringnv|Somep->packages_dirrepo_root/p/OpamPackage.to_stringnvletopamrepo_rootprefixnv=packagesrepo_rootprefixnv//"opam"|>OpamFile.makeletdescrrepo_rootprefixnv=packagesrepo_rootprefixnv//"descr"|>OpamFile.makeleturlrepo_rootprefixnv=packagesrepo_rootprefixnv//"url"|>OpamFile.makeletfilesrepo_rootprefixnv=packagesrepo_rootprefixnv/"files"moduleRemote=struct(** URL, not FS paths *)openOpamUrl.Opletreporoot_url=root_url/"repo"letpackages_urlroot_url=root_url/"packages"letarchiveroot_urlnv=root_url/"archives"/(OpamPackage.to_stringnv^"+opam.tar.gz")end