diff --git a/tools/mailutil/core/mailutil.c b/tools/mailutil/core/mailutil.c index 435e646..57b9f6b 100644 --- a/tools/mailutil/core/mailutil.c +++ b/tools/mailutil/core/mailutil.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "libremail/file.h" #include "libremail/common.h" @@ -49,6 +50,29 @@ version(void) printf("Version v%s\n", MAILUTIL_VERSION); } +static int +cmd_mailbox_list(void) +{ + DIR *dir; + struct dirent *dirent; + + if ((dir = opendir(MAILBOX_PREFIX)) == NULL) { + perror("opendir"); + return -1; + } + + while ((dirent = readdir(dir)) != NULL) { + if (dirent->d_name[0] == '.') { + continue; + } + + printf("[mailbox] :: %s\n", dirent->d_name); + } + + closedir(dir); + return 0; +} + /* * Parse a "mailbox create" command * @@ -95,6 +119,10 @@ cmd_mailbox(const char *cmdlist[CMD_MAX_CNP], size_t count) return cmd_mailbox_create(cmdlist, count); } + if (strcmp(cmdlist[1], "list") == 0) { + return cmd_mailbox_list(); + } + printf("error: bad parameter\n"); return -1; }