Commit c7df9c6c authored by Steve Zatz's avatar Steve Zatz Committed by Damien George
Browse files

stmhal: Add os.rename function.

parent f601390e
...@@ -46,6 +46,10 @@ Functions ...@@ -46,6 +46,10 @@ Functions
Remove a directory. Remove a directory.
.. function:: rename(old_path, new_path)
Rename a file.
.. function:: stat(path) .. function:: stat(path)
Get the status of a file or directory. Get the status of a file or directory.
......
...@@ -239,6 +239,22 @@ STATIC mp_obj_t os_remove(mp_obj_t path_o) { ...@@ -239,6 +239,22 @@ STATIC mp_obj_t os_remove(mp_obj_t path_o) {
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_remove_obj, os_remove); STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_remove_obj, os_remove);
/// \function rename(old_path, new_path)
/// Rename a file
STATIC mp_obj_t os_rename(mp_obj_t path_in, mp_obj_t path_out) {
const char *old_path = mp_obj_str_get_str(path_in);
const char *new_path = mp_obj_str_get_str(path_out);
FRESULT res = f_rename(old_path, new_path);
switch (res) {
case FR_OK:
return mp_const_none;
default:
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_OSError, "Error renaming file '%s' to '%s'", old_path, new_path));
}
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(os_rename_obj, os_rename);
/// \function rmdir(path) /// \function rmdir(path)
/// Remove a directory. /// Remove a directory.
STATIC mp_obj_t os_rmdir(mp_obj_t path_o) { STATIC mp_obj_t os_rmdir(mp_obj_t path_o) {
...@@ -368,6 +384,7 @@ STATIC const mp_map_elem_t os_module_globals_table[] = { ...@@ -368,6 +384,7 @@ STATIC const mp_map_elem_t os_module_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_mkdir), (mp_obj_t)&os_mkdir_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_mkdir), (mp_obj_t)&os_mkdir_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_remove), (mp_obj_t)&os_remove_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_remove), (mp_obj_t)&os_remove_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_rename),(mp_obj_t)&os_rename_obj},
{ MP_OBJ_NEW_QSTR(MP_QSTR_rmdir), (mp_obj_t)&os_rmdir_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_rmdir), (mp_obj_t)&os_rmdir_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_stat), (mp_obj_t)&os_stat_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_stat), (mp_obj_t)&os_stat_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_unlink), (mp_obj_t)&os_remove_obj }, // unlink aliases to remove { MP_OBJ_NEW_QSTR(MP_QSTR_unlink), (mp_obj_t)&os_remove_obj }, // unlink aliases to remove
......
...@@ -379,6 +379,7 @@ Q(chdir) ...@@ -379,6 +379,7 @@ Q(chdir)
Q(getcwd) Q(getcwd)
Q(listdir) Q(listdir)
Q(mkdir) Q(mkdir)
Q(rename)
Q(remove) Q(remove)
Q(rmdir) Q(rmdir)
Q(unlink) Q(unlink)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment