+let dump_environment () =
+ try
+ let oc = open_out environmentfile in
+ output_html (outputhtml ()) (`Msg (`T "Dumping environment ..."));
+ CicEnvironment.dump_to_channel
+ ~callback:(fun uri -> output_html (outputhtml ()) (`Msg (`T uri)))
+ oc;
+ output_html (outputhtml ()) (`Msg (`T "... done!")) ;
+ close_out oc
+ with exc ->
+ output_html (outputhtml ())
+ (`Error (`T (Printf.sprintf "Dump failure, uncaught exception:%s"
+ (Printexc.to_string exc))))
+;;
+let restore_environment () =
+ try
+ let ic = open_in environmentfile in
+ output_html (outputhtml ()) (`Msg (`T "Restoring environment ... "));
+ CicEnvironment.restore_from_channel
+ ~callback:(fun uri -> output_html (outputhtml ()) (`Msg (`T uri)))
+ ic;
+ output_html (outputhtml ()) (`Msg (`T "... done!"));
+ close_in ic
+ with exc ->
+ output_html (outputhtml ())
+ (`Error (`T (Printf.sprintf "Restore failure, uncaught exception:%s"
+ (Printexc.to_string exc))))
+;;
+