[Libguestfs] [supermin PATCH v2 1/3] build: ignore empty files

Pino Toscano ptoscano at redhat.com
Mon Dec 3 17:31:13 UTC 2018


Do not error out on empty files, just ignore them.

This can be easily reproduced by touch'ing an empty file in the
directory of an appliance created with --prepare.
---
 src/mode_build.ml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/mode_build.ml b/src/mode_build.ml
index b5f5fa6..8a06012 100644
--- a/src/mode_build.ml
+++ b/src/mode_build.ml
@@ -46,6 +46,7 @@ and file_content =
 | Packages
 | Hostfiles
 | Excludefiles
+| Empty
 
 let rec string_of_file_type = function
   | GZip c -> sprintf "gzip %s" (string_of_file_content c)
@@ -56,6 +57,7 @@ and string_of_file_content = function
   | Packages -> "packages"
   | Hostfiles -> "hostfiles"
   | Excludefiles -> "excludefiles"
+  | Empty -> "empty"
 
 let rec build debug
     (copy_kernel, format, host_cpu,
@@ -250,6 +252,8 @@ and read_appliance debug basedir appliance = function
     (* Depending on the file type, read or unpack the file. *)
     let appliance =
       match file_type with
+      | Uncompressed Empty | GZip Empty | XZ Empty ->
+        appliance
       | Uncompressed ((Packages|Hostfiles|Excludefiles) as t) ->
         let chan = open_in file in
         let lines = input_all_lines chan in
@@ -294,7 +298,7 @@ and update_appliance appliance lines = function
         String.sub path 1 (n-1)
     ) lines in
     { appliance with excludefiles = appliance.excludefiles @ lines }
-  | Base_image -> assert false
+  | Base_image | Empty -> assert false
 
 (* Determine the [file_type] of [file], or exit with an error. *)
 and get_file_type file =
@@ -331,6 +335,7 @@ and get_file_content file buf len =
   else if len >= 2 && buf.[0] = '/' then Hostfiles
   else if len >= 2 && buf.[0] = '-' then Excludefiles
   else if len >= 1 && isalnum buf.[0] then Packages
+  else if len = 0 then Empty
   else error "%s: unknown file type in supermin directory" file
 
 and get_compressed_file_content zcat file =
-- 
2.17.2




More information about the Libguestfs mailing list