aboutsummaryrefslogtreecommitdiff
path: root/clib/cPath.mli
blob: 762279a2184d5a708248caa060c304f87653714a (plain)
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
(************************************************************************)
(*         *   The Coq Proof Assistant / The Coq Development Team       *)
(*  v      *         Copyright INRIA, CNRS and contributors             *)
(* <O___,, * (see version control and CREDITS file for authors & dates) *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)

(* This API is loosely inspired by [Stdune.Path], for now we keep it
   minimal, but at some point we may extend it, see developer notes in
   the implementation file. *)

(* To be made opaque one day, for now we force users to go thru the
   constructor *)
type t = private string

(** [make path_components] build a path from its components *)
val make : string list -> t

(** [relative path string] build a path relative to an existing one *)
val relative : t -> string -> t

(** [choose_existing paths] will return [Some f] for the first file
   [f] in [paths] that exists, [None] otherwise. *)
val choose_existing : t list -> t option

(* We should gradually add some more functions to handle common dirs
   here such the theories directories or share files. Abstracting it
   here does allow to use system-specific functionalities *)