Generate config.ml from Makefile, add iconsdir path.
[guestfs-browser.git] / utils.ml
index 9da9eb1..3afcf99 100644 (file)
--- a/utils.ml
+++ b/utils.ml
@@ -76,11 +76,25 @@ To get more information about libguestfs errors, run guestfs-browser
 with the -x flag on the command line."
         str
 
+  | Libvirt.Virterror err ->
+      "Libvirt error",
+      sprintf "libvirt reported an error:
+
+%s
+
+To get more information about libvirt errors, run guestfs-browser
+from the command line like this:
+
+LIBVIRT_DEBUG=1 guestfs-browser"
+        (Libvirt.Virterror.to_string err)
+
   (* Add more exception types here as we come across them.  Last
    * case below is the catch-all.
    *)
   | exn ->
-      "Error", Printexc.to_string exn
+      let str = Printexc.to_string exn in
+      debug "pretty_string_of_exn: unhandled exception %s" str;
+      "Error", str
 
 let human_size i =
   if i < 1024L then
@@ -241,3 +255,21 @@ and reg_hex_of_string ?(split_long_lines=false) v =
 let local_file_exists filename =
   try Unix.access filename [Unix.F_OK]; true
   with Unix.Unix_error _ -> false
+
+let basename pathname =
+  let len = String.length pathname in
+  try
+    let i = String.rindex pathname '/' in
+    let r = String.sub pathname (i+1) (len-i-1) in
+    if r = "" then "root" else r
+  with
+    Not_found -> pathname
+
+let extension pathname =
+  let len = String.length pathname in
+  try
+    let i = String.rindex pathname '.' in
+    let r = String.sub pathname i (len-i) in
+    r
+  with
+    Not_found -> ""