From 7979b5b96b03dd71edf8abf53c55d9363e3dfb0c Mon Sep 17 00:00:00 2001
From: Andre Maroneze <andre.maroneze@cea.fr>
Date: Mon, 9 Oct 2023 11:27:53 +0200
Subject: [PATCH] [Filepath] prepare Filepath as wrapper for calls to
 Filename/Sys

---
 src/libraries/utils/filepath.ml  | 14 +++++++++++++
 src/libraries/utils/filepath.mli | 35 ++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+)

diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml
index 6c24bf4aff1..3689f5a2ef2 100644
--- a/src/libraries/utils/filepath.ml
+++ b/src/libraries/utils/filepath.ml
@@ -337,6 +337,20 @@ type position =
 let pp_pos fmt pos =
   Format.fprintf fmt "%a:%d" Normalized.pretty pos.pos_path pos.pos_lnum
 
+let exists (s : Normalized.t) = Sys.file_exists (s :> string)
+
+let is_dir (s : Normalized.t) = Sys.is_directory (s :> string)
+
+let readdir (s : Normalized.t) = Sys.readdir (s :> string)
+
+let remove (s : Normalized.t) = Sys.remove (s :> string)
+
+let rename s t = Sys.rename s t
+
+let basename p = Filename.basename p
+
+let dirname p = Filename.dirname p
+
 (*
 Local Variables:
 compile-command: "make -C ../../.."
diff --git a/src/libraries/utils/filepath.mli b/src/libraries/utils/filepath.mli
index ed6d96033cb..451937d4da7 100644
--- a/src/libraries/utils/filepath.mli
+++ b/src/libraries/utils/filepath.mli
@@ -216,6 +216,41 @@ val pp_pos : Format.formatter -> position -> unit
 *)
 val pwd : unit -> string
 
+(** Equivalent to [Sys.file_exists].
+    @since Frama-C+dev
+*)
+val exists: Normalized.t -> bool
+
+(** Equivalent to [Sys.is_directory].
+    @since Frama-C+dev
+*)
+val is_dir: Normalized.t -> bool
+
+(** Equivalent to [Sys.readdir].
+    @since Frama-C+dev
+*)
+val readdir: Normalized.t -> string array
+
+(** Equivalent to [Sys.remove].
+    @since Frama-C+dev
+*)
+val remove: Normalized.t -> unit
+
+(** Equivalent to [Sys.rename].
+    @since Frama-C+dev
+*)
+val rename: Normalized.t -> Normalized.t -> unit
+
+(** Equivalent to [Filename.basename].
+    @since Frama-C+dev
+*)
+val basename: Normalized.t -> string
+
+(** Equivalent to [Filename.dirname].
+    @since Frama-C+dev
+*)
+val dirname: Normalized.t -> Normalized.t
+
 (*
   Local Variables:
   compile-command: "make -C ../../.."
-- 
GitLab