More shell file management commands.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15428 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2022-02-02 11:26:17 +00:00
parent 8ed8c6122e
commit c110d0e482
2 changed files with 39 additions and 1 deletions

View File

@ -408,6 +408,20 @@ static void cmd_mkdir(BaseSequentialStream *chp, int argc, char *argv[]) {
} }
} }
static void cmd_mv(BaseSequentialStream *chp, int argc, char *argv[]) {
msg_t ret;
if (argc != 2) {
chprintf(chp, "Usage: mv <oldpath> <newpath>" SHELL_NEWLINE_STR);
return;
}
ret = vfsRename(argv[0], argv[1]);
if (CH_RET_IS_ERROR(ret)) {
chprintf(chp, "Failed (%d)" SHELL_NEWLINE_STR, ret);
}
}
static void cmd_pwd(BaseSequentialStream *chp, int argc, char *argv[]) { static void cmd_pwd(BaseSequentialStream *chp, int argc, char *argv[]) {
char *buf = NULL; char *buf = NULL;
@ -442,6 +456,20 @@ static void cmd_pwd(BaseSequentialStream *chp, int argc, char *argv[]) {
} }
} }
static void cmd_rm(BaseSequentialStream *chp, int argc, char *argv[]) {
msg_t ret;
if (argc != 1) {
chprintf(chp, "Usage: rm <filepath>" SHELL_NEWLINE_STR);
return;
}
ret = vfsUnlink(argv[0]);
if (CH_RET_IS_ERROR(ret)) {
chprintf(chp, "Failed (%d)" SHELL_NEWLINE_STR, ret);
}
}
static void cmd_rmdir(BaseSequentialStream *chp, int argc, char *argv[]) { static void cmd_rmdir(BaseSequentialStream *chp, int argc, char *argv[]) {
msg_t ret; msg_t ret;
@ -488,7 +516,9 @@ const ShellCommand shell_local_commands[] = {
{"cd", cmd_cd}, {"cd", cmd_cd},
{"ls", cmd_ls}, {"ls", cmd_ls},
{"mkdir", cmd_mkdir}, {"mkdir", cmd_mkdir},
{"mv", cmd_mv},
{"pwd", cmd_pwd}, {"pwd", cmd_pwd},
{"rm", cmd_rm},
{"rmdir", cmd_rmdir}, {"rmdir", cmd_rmdir},
{"tree", cmd_tree}, {"tree", cmd_tree},
#endif #endif

View File

@ -120,6 +120,7 @@ static msg_t drv_open_file(void *instance,
int flags, int flags,
vfs_file_node_c **vfnpp); vfs_file_node_c **vfnpp);
msg_t drv_unlink(void *instance, const char *path); msg_t drv_unlink(void *instance, const char *path);
msg_t drv_rename(void *instance, const char *oldpath, const char *newpath);
msg_t drv_mkdir(void *instance, const char *path); msg_t drv_mkdir(void *instance, const char *path);
msg_t drv_rmdir(void *instance, const char *path); msg_t drv_rmdir(void *instance, const char *path);
@ -129,7 +130,7 @@ static const struct vfs_fatfs_driver_vmt driver_vmt = {
.open_dir = drv_open_dir, .open_dir = drv_open_dir,
.open_file = drv_open_file, .open_file = drv_open_file,
.unlink = drv_unlink, .unlink = drv_unlink,
.rename = drv_rename_unimpl, .rename = drv_rename,
.mkdir = drv_mkdir, .mkdir = drv_mkdir,
.rmdir = drv_rmdir .rmdir = drv_rmdir
}; };
@ -437,6 +438,13 @@ msg_t drv_unlink(void *instance, const char *path) {
return translate_error(f_unlink(path)); return translate_error(f_unlink(path));
} }
msg_t drv_rename(void *instance, const char *oldpath, const char *newpath) {
(void)instance;
return translate_error(f_rename(oldpath, newpath));
}
msg_t drv_mkdir(void *instance, const char *path) { msg_t drv_mkdir(void *instance, const char *path) {
(void)instance; (void)instance;