diff --git a/pycardium/modules/os.c b/pycardium/modules/os.c index e5c625ef4f2dde5e138a08a28591935cb7fc0f97..99af67cb07a04af5dfe277a7b48f775c81c3ee36 100644 --- a/pycardium/modules/os.c +++ b/pycardium/modules/os.c @@ -89,12 +89,39 @@ static mp_obj_t mp_os_unlink(mp_obj_t py_path) } static MP_DEFINE_CONST_FUN_OBJ_1(unlink_obj, mp_os_unlink); +static mp_obj_t mp_os_mkdir(mp_obj_t py_path) +{ + const char *path = mp_obj_str_get_str(py_path); + int rc = epic_file_mkdir(path); + + if (rc < 0) { + mp_raise_OSError(-rc); + } + return mp_const_none; +} +static MP_DEFINE_CONST_FUN_OBJ_1(mkdir_obj, mp_os_mkdir); + +static mp_obj_t mp_os_rename(mp_obj_t py_oldp, mp_obj_t py_newp) +{ + const char *oldp = mp_obj_str_get_str(py_oldp); + const char *newp = mp_obj_str_get_str(py_newp); + int rc = epic_file_rename(oldp, newp); + + if (rc < 0) { + mp_raise_OSError(-rc); + } + return mp_const_none; +} +static MP_DEFINE_CONST_FUN_OBJ_2(rename_obj, mp_os_rename); + static const mp_rom_map_elem_t os_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_os) }, { MP_ROM_QSTR(MP_QSTR_exit), MP_ROM_PTR(&exit_obj) }, { MP_ROM_QSTR(MP_QSTR_exec), MP_ROM_PTR(&exec_obj) }, { MP_ROM_QSTR(MP_QSTR_listdir), MP_ROM_PTR(&listdir_obj) }, { MP_ROM_QSTR(MP_QSTR_unlink), MP_ROM_PTR(&unlink_obj) }, + { MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&mkdir_obj) }, + { MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&rename_obj) }, }; static MP_DEFINE_CONST_DICT(os_module_globals, os_module_globals_table); diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h index 49ad16f40b8dd7ae88e4a756be3270739b7625d8..4315a839ccd280fb41cd24b2d258d901435a3652 100644 --- a/pycardium/modules/qstrdefs.h +++ b/pycardium/modules/qstrdefs.h @@ -100,6 +100,8 @@ Q(exit) Q(exec) Q(listdir) Q(unlink) +Q(mkdir) +Q(rename) /* gpio */ Q(gpio)