#load "unix.cma" ;;
open Printf ;;
let _ =
if (Array.length Sys.argv) < 4 then begin
printf "Usage:\n %s file.xcf 'old comment' 'new comment'\n" Sys.argv.(0);
exit 1
end;
let filename = Sys.argv.(1)
in
let old_comment = Sys.argv.(2)
and new_comment = Sys.argv.(3)
in
let old_com_len = succ (String.length old_comment)
and new_com_len = succ (String.length new_comment)
in
let old_prefix = sprintf "%c" (char_of_int old_com_len)
and new_prefix = sprintf "%c" (char_of_int new_com_len)
in
let old_comment = old_prefix ^ old_comment
and new_comment = new_prefix ^ new_comment
in
let regexp = sprintf "s/%s/%s/g" old_comment new_comment
in
let command_line = sprintf "sed -i %s -e '%s'" filename regexp in
print_endline command_line;
let process_status = Unix.system command_line
in
match process_status with
| Unix.WEXITED return_code -> printf " return code: %d\n" return_code
| Unix.WSIGNALED sig_number -> printf " killed by the signal %d\n" sig_number
| Unix.WSTOPPED sig_number -> printf " stopped by signal: %d\n" sig_number
;;