git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Allow user to specify mailbox format for mailsplit

From
Alex Riesen <raa.lkml@gmail.com>
Date
May 21, 2007, 23:05 UTC
Message-ID
<20070521230524.GC10890@steel.home>
In-Reply-To
<20070521182052.GB4696@ferdyx.org>

If the argument ends with a slash - assume it is a Maildir and try to create it. Otherwise - it is an mbox.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---
 Documentation/git-mailsplit.txt |    4 +++-
 builtin-mailsplit.c             |   10 ++++++++++
 2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/Documentation/git-mailsplit.txt b/Documentation/git-mailsplit.txt
index abb0903..2c58e09 100644
--- a/Documentation/git-mailsplit.txt
+++ b/Documentation/git-mailsplit.txt
@@ -25,7 +25,9 @@ OPTIONS
 
 <Maildir>::
 	Root of the Maildir to split. This directory should contain the cur, tmp
-	and new subdirectories.
+	and new subdirectories. If the argument ends with a slash '/'
+	the directory and new, cur and tmp subdirectories will be
+	created automatically.
 
 <directory>::
 	Directory in which to place the individual messages.
diff --git a/builtin-mailsplit.c b/builtin-mailsplit.c
index 454f943..370f7fa 100644
--- a/builtin-mailsplit.c
+++ b/builtin-mailsplit.c
@@ -253,6 +253,7 @@ int cmd_mailsplit(int argc, const char **argv, const char *prefix)
 		const char *arg = *argp++;
 		struct stat argstat;
 		int ret = 0;
+		size_t arglen = strlen(arg);
 
 		if (arg[0] == '-' && arg[1] == 0) {
 			ret = split_mbox(arg, dir, allow_bare, nr_prec, nr);
@@ -264,6 +265,15 @@ int cmd_mailsplit(int argc, const char **argv, const char *prefix)
 			continue;
 		}
 
+		if (arglen && arg[arglen-1] == '/') {
+			char *dir = malloc(arglen + 5);
+			memcpy(dir, arg, arglen);
+			mkdir(arg, 0777);
+			mkdir(strcpy(dir + arglen, "new"), 0777);
+			mkdir(strcpy(dir + arglen, "cur"), 0777);
+			mkdir(strcpy(dir + arglen, "tmp"), 0777);
+			free(dir);
+		}
 		if (stat(arg, &argstat) == -1) {
 			error("cannot stat %s (%s)", arg, strerror(errno));
 			return 1;
-- 
1.5.2.rc3.112.gc1e43
Previous: Fernando J. PeredaNext: Junio C Hamano
Message 15 of 21 in “Teach mailsplit about Maildir's”
  1. Teach mailsplit about Maildir'sFernando J. Pereda, May 20, 2007
  2. Junio C HamanoMay 20, 2007
  3. Alex RiesenMay 20, 2007
  4. Fernando J. PeredaMay 20, 2007
  5. Alex RiesenMay 20, 2007
  6. Fernando J. PeredaMay 20, 2007
  7. Johan HerlandMay 20, 2007
  8. Fernando J. PeredaMay 20, 2007
  9. Johan HerlandMay 20, 2007
  10. Johannes SchindelinMay 21, 2007
  11. Junio C HamanoMay 21, 2007
  12. Johannes SchindelinMay 21, 2007
  13. Fernando J. PeredaMay 21, 2007
  14. Fernando J. PeredaMay 21, 2007
  15. Allow user to specify mailbox format for mailsplitAlex Riesen, May 21, 2007
  16. Junio C HamanoMay 21, 2007
  17. Alex RiesenMay 22, 2007
  18. Junio C HamanoMay 24, 2007
  19. Fernando J. PeredaMay 24, 2007
  20. Junio C HamanoMay 24, 2007
  21. Teach mailsplit about Maildir'sFernando J. Pereda, May 24, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.