Catala_utils.File
Utility functions used for file manipulation.
Runs the given function with the provided file opened, ensuring it is properly closed afterwards. May raise just as open_out
.
Runs the given function with the provided file opened, ensuring it is properly closed afterwards. May raise just as open_in
.
with_formatter_of_out_channel oc f
creates an flushes the formatter used in f
from the given out_channel oc
.
with_formatter_of_file filename f
manages the formatter created from the file filename
used in f
-- i.e. closes the corresponding out_channel and flushes the formatter.
with_formatter_of_opt_file filename_opt f
manages the formatter created from the file filename_opt
if there is some (see with_formatter_of_file
), otherwise, uses the Format.std_formatter
.
val get_out_channel :
source_file:Pos.input_file ->
output_file:string option ->
?ext:string ->
unit ->
string option * ( ( Stdlib.out_channel -> 'a ) -> 'a )
get_output ~source_file ~output_file ?ext ()
returns the infered filename and its corresponding with_out_channel
function. If the output_file
is equal to Some "-"
returns a wrapper around stdout
.
val get_formatter_of_out_channel :
source_file:Pos.input_file ->
output_file:string option ->
?ext:string ->
unit ->
string option * ( ( Stdlib.Format.formatter -> 'a ) -> 'a )
get_output_format ~source_file ~output_file ?ext ()
returns the infered filename and its corresponding with_formatter_of_out_channel
function. If the output_file
is equal to Some "-"
returns a wrapper around stdout
.
Like Filename.temp_file
, but registers the file for deletion at program exit unless Cli.debug_flag is set.
Creates a temp file (with prefix and suffix like temp_file
, optionally with the given contents, for the lifetime of the supplied function, then remove it unconditionally
process_out cmd args
executes the given command with the specified arguments, and returns the stdout of the process as a string. check_exit
is called on the return code of the sub-process, the default is to fail on anything but 0.