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.
|
|
|
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([]);
|
|
|
|
};
|
|
|
|
|
|
|
|
let%lwt items =
|
|
|
|
try%lwt (iterate()) {
|
|
|
|
| End_of_file => Lwt.return(items^)
|
|
|
|
};
|
|
|
|
|
|
|
|
let%lwt _ = Lwt_unix.closedir(dir);
|
|
|
|
Lwt.return(items);
|
|
|
|
};
|
|
|
|
|
|
|
|
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;
|