46 lines
1 KiB
Text
46 lines
1 KiB
Text
:- module create_file.
|
|
:- interface.
|
|
|
|
:- import_module io.
|
|
:- pred main(io::di, io::uo) is det.
|
|
|
|
:- implementation.
|
|
|
|
:- import_module dir.
|
|
|
|
main(!IO) :-
|
|
create_file("output.txt", !IO),
|
|
create_file("/output.txt", !IO),
|
|
create_dir("docs", !IO),
|
|
create_dir("/docs", !IO).
|
|
|
|
:- pred create_file(string::in, io::di, io::uo) is det.
|
|
|
|
create_file(FileName, !IO) :-
|
|
io.open_output(FileName, Result, !IO),
|
|
(
|
|
Result = ok(File),
|
|
io.close_output(File, !IO)
|
|
;
|
|
Result = error(Error),
|
|
print_io_error(Error, !IO)
|
|
).
|
|
|
|
:- pred create_dir(string::in, io::di, io::uo) is det.
|
|
|
|
create_dir(DirName, !IO) :-
|
|
dir.make_single_directory(DirName, Result, !IO),
|
|
(
|
|
Result = ok
|
|
;
|
|
Result = error(Error),
|
|
print_io_error(Error, !IO)
|
|
).
|
|
|
|
:- pred print_io_error(io.error::in, io::di, io::uo) is det.
|
|
|
|
print_io_error(Error, !IO) :-
|
|
io.stderr_stream(Stderr, !IO),
|
|
io.write_string(Stderr, io.error_message(Error), !IO),
|
|
io.nl(Stderr, !IO),
|
|
io.set_exit_status(1, !IO).
|