#include "../lib/io/io.h" #include "../lib/sys/mkdir.h" #include "../lib/sys/creat.h" #include "../lib/cstr/cstr.h" enum { FILE, DIRECTORY, NUMBER_OF_MODES, }; void new_file(char *path); void new_directory(char *path); int(*new_funcs[NUMBER_OF_MODES])(const char *, unsigned int) = { &creat, &mkdir }; int main(int argc, char **argv) { if (argc < 3) { wff(STDERR_FD, "new [-f | -d] ..."); return -1; } int type = FILE; if (cstr_length(argv[1]) != 2) { wff(STDERR_FD, "error: unknown entry type.\n"); return -1; } switch(argv[1][1]) { case 'f': type = FILE; break; case 'd': type = DIRECTORY; break; default: wff(STDERR_FD, "error: unknown entry type.\n"); return -1; } for (int i = 2; i < argc; ++i) { new_funcs[type](argv[i], MODE_USER_READ | MODE_USER_WRITE); } return 0; }