[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