X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=template.ml;h=404ec6b7be72ed6479fb69f0cc44ae039ffb2d05;hb=cb034760e5b05e80ef3e26ed632223e3a00966d3;hp=20a5cc7404148567914342c13e3539106e165434;hpb=5f5bfbd6da3c0994be68d163bc3d0bc5205d8609;p=mclu.git diff --git a/template.ml b/template.ml index 20a5cc7..404ec6b 100644 --- a/template.ml +++ b/template.ml @@ -81,6 +81,7 @@ type template_info = { network_model : string option; has_xml_target : bool; needs_external_kernel : bool; + cmdline : string option; } let probe ?(verbose = false) filename = @@ -150,6 +151,16 @@ let probe ?(verbose = false) filename = | Some ["1"|"yes"] -> true | Some _ -> false in + let cmdline = + match run_template ~verbose filename "cmdline" [] with + | Some [cmdline] -> Some cmdline + | _ -> None in + + if not needs_external_kernel && cmdline <> None then ( + eprintf "mclu: template cannot set 'cmdline' unless 'needs-external-kernel' is 'yes'.\n"; + exit 1 + ); + { base_image = base_image; guest_arch = guest_arch; minimum_memory = minimum_memory; @@ -158,4 +169,5 @@ let probe ?(verbose = false) filename = disk_bus = disk_bus; network_model = network_model; has_xml_target = has_xml_target; - needs_external_kernel = needs_external_kernel; } + needs_external_kernel = needs_external_kernel; + cmdline = cmdline }