return err == LFS_ERR_OK;
}
+int _filesystem_format(void);
+int _filesystem_format(void) {
+ int err = lfs_unmount(&lfs);
+ if (err < 0) {
+ printf("Couldn't unmount - continuing to format, but you should reboot afterwards!\r\n");
+ }
+
+ err = lfs_format(&lfs, &cfg);
+ if (err < 0) return err;
+
+ err = lfs_mount(&lfs, &cfg);
+ if (err < 0) return err;
+ printf("Filesystem re-mounted with %ld bytes free.\r\n", filesystem_get_free_space());
+ return 0;
+}
+
bool filesystem_file_exists(char *filename) {
info.type = 0;
lfs_stat(&lfs, filename, &info);
return 0;
}
+int filesystem_cmd_format(int argc, char *argv[]) {
+ (void) argc;
+ if(strcmp(argv[1], "YES") == 0) {
+ return _filesystem_format();
+ }
+ return 1;
+}
+
+
int filesystem_cmd_echo(int argc, char *argv[]) {
(void) argc;
return 0;
}
-
int filesystem_cmd_cat(int argc, char *argv[]);
int filesystem_cmd_df(int argc, char *argv[]);
int filesystem_cmd_rm(int argc, char *argv[]);
+int filesystem_cmd_format(int argc, char *argv[]);
int filesystem_cmd_echo(int argc, char *argv[]);
#endif // FILESYSTEM_H_
.max_args = 1,
.cb = filesystem_cmd_rm,
},
+ {
+ .name = "format",
+ .help = "usage: format YES",
+ .min_args = 1,
+ .max_args = 1,
+ .cb = filesystem_cmd_format,
+ },
{
.name = "echo",
.help = "usage: echo TEXT {>,>>} FILE",
printf("Command List:\r\n");
for (size_t i = 0; i < g_num_shell_commands; i++) {
- printf(" %s\t%s\r\n",
+ printf(" %s\t%s\r\n",
g_shell_commands[i].name,
(g_shell_commands[i].help) ? g_shell_commands[i].help : ""
);
return 0;
}
-