fs Add mkd subcommand for creating directories
This commit is contained in:
@ -2,8 +2,8 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <ulib.h>
|
#include <ulib.h>
|
||||||
|
|
||||||
extern void fs_fetch(void);
|
#define CMDS(X) \
|
||||||
extern void fs_mkf(void);
|
X(fetch) X(mkf) X(mkd)
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
if (argslen() == 0) {
|
if (argslen() == 0) {
|
||||||
@ -12,11 +12,13 @@ void main(void) {
|
|||||||
|
|
||||||
char *cmd = args()[0];
|
char *cmd = args()[0];
|
||||||
|
|
||||||
if (string_strcmp(cmd, "fetch") == 0) {
|
#define X(name) if (string_strcmp(cmd, #name) == 0) { \
|
||||||
fs_fetch();
|
extern void fs_ ## name(void); \
|
||||||
} else if (string_strcmp(cmd, "mkf") == 0) {
|
fs_ ## name(); \
|
||||||
fs_mkf();
|
return; \
|
||||||
} else {
|
}
|
||||||
|
CMDS(X)
|
||||||
|
#undef X
|
||||||
|
|
||||||
uprintf("fs: unknown command %s\n", cmd);
|
uprintf("fs: unknown command %s\n", cmd);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
17
user/fs/mkd.c
Normal file
17
user/fs/mkd.c
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include <stddef.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <ulib.h>
|
||||||
|
|
||||||
|
void fs_mkd(void) {
|
||||||
|
if (argslen() < 2) {
|
||||||
|
uprintf("fs: Not enough arguments\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *path = *(args()+1);
|
||||||
|
|
||||||
|
int32_t r = ioctl(IOCTL_NOHANDLE, IOCTL_MKDIR, (uint64_t)path, 0, 0);
|
||||||
|
if (r != E_OK) {
|
||||||
|
uprintf("fs: could not create %s\n", path);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user