Add TODO list.
[mclu.git] / template.ml
index 20a5cc7..404ec6b 100644 (file)
@@ -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 }