]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / applications / browser / useunix.ml
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml
new file mode 100644 (file)
index 0000000..c4860a8
--- /dev/null
@@ -0,0 +1,36 @@
+(* $Id$ *)
+
+open Unix
+
+let get_files_in_directory dir =
+  try
+  let dirh = opendir dir in
+  let rec get_them () =
+    try
+      let x = readdir dirh in
+      x :: get_them ()
+    with
+      _ -> closedir dirh; [] 
+  in
+    Sort.list ~order:(<) (get_them ())
+  with Unix_error _ -> []
+
+let is_directory name =
+  try
+    (stat name).st_kind = S_DIR
+  with _ -> false
+
+let get_directories_in_files ~path =
+  List.filter ~pred:(fun x -> is_directory  (path ^ "/" ^ x))
+
+(************************************************** Subshell call *)
+let subshell ~cmd =
+  let rc = open_process_in ~cmd in
+  let rec it () =
+    try 
+      let x = input_line rc in x :: it ()
+    with _ -> []
+  in 
+  let answer = it () in
+  close_process_in rc;
+  answer