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