mkdir and rmdir basic implementation

This commit is contained in:
vaclavt
2022-03-21 17:46:32 +01:00
parent 2856043feb
commit 2607a50986
8 changed files with 44 additions and 43 deletions

20
ml.cpp
View File

@@ -1362,6 +1362,24 @@ MlValue is_dir(std::vector<MlValue> args, MlEnvironment &env) {
return MlValue(is_path_dir(args[0].as_string()));
}
MlValue mk_dir(std::vector<MlValue> args, MlEnvironment &env) {
eval_args(args, env);
if (args.size() != 1)
throw MlError(MlValue("mk-dir", mk_dir), env, args.size() > 1 ? TOO_MANY_ARGS : TOO_FEW_ARGS);
return MlValue((bool)mk_path_dir(args[0].as_string()));
}
MlValue rm_dir(std::vector<MlValue> args, MlEnvironment &env) {
eval_args(args, env);
if (args.size() != 1)
throw MlError(MlValue("rm-dir", rm_dir), env, args.size() > 1 ? TOO_MANY_ARGS : TOO_FEW_ARGS);
return MlValue((bool)rm_path_dir(args[0].as_string()));
}
// starts tcp listening server
MlValue tcp_server(std::vector<MlValue> args, MlEnvironment &env) {
eval_args(args, env);
@@ -2226,6 +2244,8 @@ std::map<const std::string, Builtin> builtin_funcs
std::make_pair("ls-dir", builtin::ls_dir),
std::make_pair("is-file?", builtin::is_file),
std::make_pair("is-dir?", builtin::is_dir),
std::make_pair("mk-dir", builtin::mk_dir),
std::make_pair("rm-dir", builtin::rm_dir),
std::make_pair("tcp-server", builtin::tcp_server),
std::make_pair("tcp-client", builtin::tcp_client),
std::make_pair("get-env", builtin::get_env),