[Libguestfs] [supermin PATCH] build: ignore empty files

Richard W.M. Jones rjones at redhat.com
Mon Dec 3 15:54:14 UTC 2018


On Mon, Dec 03, 2018 at 04:32:19PM +0100, Pino Toscano wrote:
> Do not error out on empty files, just ignore them.
> ---
>  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..9cd0a21 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 =
> -- 

This is fine, ACK.

Is there a situation where we have empty files in the supermin
directory?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list