Collect the size (ft_size) of files from package handlers.
[febootstrap.git] / febootstrap.ml
index 58b2962..3c634c4 100644 (file)
@@ -126,7 +126,8 @@ let () =
             else (
               insert_dir parent;
               let newdir = (parent, { ft_dir = true; ft_config = false;
-                                      ft_ghost = false; ft_mode = 0o40755 },
+                                      ft_ghost = false; ft_mode = 0o40755;
+                                     ft_size = 0 },
                             "") in
               newdir :: loop parent
             )
@@ -140,23 +141,25 @@ let () =
   if false then (
     List.iter (
       fun (name, { ft_dir = dir; ft_ghost = ghost; ft_config = config;
-                   ft_mode = mode }, pkg) ->
-        printf "%s [%s%s%s%o] from %s\n" name
+                   ft_mode = mode; ft_size = size }, pkg) ->
+        printf "%s [%s%s%s%o %d] from %s\n" name
           (if dir then "dir " else "")
           (if ghost then "ghost " else "")
           (if config then "config " else "")
-          mode
+          mode size
           pkg
     ) files
   );
 
   (* Split the list of files into ones for hostfiles and ones for base image. *)
-  let p_hmac = Str.regexp "/\\..*\\.hmac$" in
+  let p_hmac = Str.regexp "^\\..*\\.hmac$" in
 
   let hostfiles = ref []
   and baseimgfiles = ref [] in
   List.iter (
     fun (path, {ft_dir = dir; ft_ghost = ghost; ft_config = config} ,_ as f) ->
+      let file = Filename.basename path in
+
       (* Ignore boot files, kernel, kernel modules.  Supermin appliances
        * are booted from external kernel and initrd, and
        * febootstrap-supermin-helper copies the host kernel modules.
@@ -176,7 +179,7 @@ let () =
         hostfiles := f :: !hostfiles
 
       (* Ignore FIPS files (.*.hmac) (RHBZ#654638). *)
-      else if Str.string_match p_hmac path 0 then ()
+      else if Str.string_match p_hmac file 0 then ()
 
       (* Ghost files are created empty in the base image. *)
       else if ghost then