You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
815 B

6 years ago
open Core;
let readdir = dir => {
let items = ref([]);
let%lwt dir = Lwt_unix.opendir(dir);
let iterate = () => {
let%lwt _ =
while%lwt (true) {
let%lwt value = Lwt_unix.readdir(dir);
if (value.[0] != '.') {
items := [value, ...items^];
};
Lwt.return();
};
Lwt.return([]);
6 years ago
};
let%lwt items =
try%lwt (iterate()) {
| End_of_file => Lwt.return(items^)
};
let%lwt _ = Lwt_unix.closedir(dir);
Lwt.return(items);
};
6 years ago
let writeFile = (path, contents) => {
let%lwt x = Lwt_unix.openfile(path, [Unix.O_RDWR, Unix.O_CREAT], 777);
let%lwt _ =
Lwt.finalize(
() => Lwt_unix.write_string(x, contents, 0, String.length(contents)),
() => Lwt_unix.close(x),
);
Lwt.return();
};
let realpath = Filename.realpath;