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 = -- 2.17.2