let update_dir ?(recursive=true) dir =
let temp_file = Filename.temp_file "ocamlcvs" "update" in
let com = Printf.sprintf
"cd %s ; cvs update %s -d %s > %s"
(Filename.quote dir)
!Ocvs_config.update_options
(if recursive then "-R" else "-l")
temp_file
in
let n = Sys.command com in
if n = 0 then
(
let l = analyse_update_file temp_file in
delete_file temp_file ;
List.map
(fun (f, action) -> (Filename.concat dir f, action))
l
)
else
(
delete_file temp_file ;
raise (Ocvs_types.CvsFailure (Ocvs_messages.error_exec com))
)