[PATCH v2 03/20] cli: add stub for insert command
The notmuch insert command should read a message from standard input and deliver it to a Maildir folder, and then incorporate the message into the notmuch database. Essentially it moves the functionality of notmuch-deliver into notmuch. Though it could be used as an alternative to notmuch new, the reason I want this is to allow my notmuch frontend to add postponed or sent messages to the mail store and notmuch database, without resorting to another tool (e.g. notmuch-deliver) nor directly modifying the maildir. --- Makefile.local | 1 + notmuch-client.h | 3 +++ notmuch-insert.c | 43 +++ notmuch.c| 3 +++ 4 files changed, 50 insertions(+) create mode 100644 notmuch-insert.c diff --git a/Makefile.local b/Makefile.local index 2b91946..6bbd588 100644 --- a/Makefile.local +++ b/Makefile.local @@ -261,6 +261,7 @@ notmuch_client_srcs = \ notmuch-config.c\ notmuch-count.c \ notmuch-dump.c \ + notmuch-insert.c\ notmuch-new.c \ notmuch-reply.c \ notmuch-restore.c \ diff --git a/notmuch-client.h b/notmuch-client.h index a7c3df2..c0d0e93 100644 --- a/notmuch-client.h +++ b/notmuch-client.h @@ -135,6 +135,9 @@ int notmuch_dump_command (void *ctx, int argc, char *argv[]); int +notmuch_insert_command (void *ctx, int argc, char *argv[]); + +int notmuch_new_command (void *ctx, int argc, char *argv[]); int diff --git a/notmuch-insert.c b/notmuch-insert.c new file mode 100644 index 000..21424cf --- /dev/null +++ b/notmuch-insert.c @@ -0,0 +1,43 @@ +/* notmuch - Not much of an email program, (just index and search) + * + * Copyright ? 2012 Peter Wang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://www.gnu.org/licenses/ . + * + * Author: Peter Wang + */ + +#include "notmuch-client.h" + +int +notmuch_insert_command (void *ctx, int argc, char *argv[]) +{ +notmuch_config_t *config; +notmuch_database_t *notmuch; +const char *db_path; + +config = notmuch_config_open (ctx, NULL, NULL); +if (config == NULL) + return 1; + +db_path = notmuch_config_get_database_path (config); + +if (notmuch_database_open (notmuch_config_get_database_path (config), + NOTMUCH_DATABASE_MODE_READ_WRITE, )) + return 1; + +notmuch_database_destroy (notmuch); + +return 1; +} diff --git a/notmuch.c b/notmuch.c index 477a09c..86239fd 100644 --- a/notmuch.c +++ b/notmuch.c @@ -53,6 +53,9 @@ static command_t commands[] = { { "new", notmuch_new_command, "[options...]", "Find and import new messages to the notmuch database." }, +{ "insert", notmuch_insert_command, + "[options...] [--] [+|- ...] < message", + "Add a new message into the maildir and notmuch database." }, { "search", notmuch_search_command, "[options...] [...]", "Search for messages matching the given search terms." }, -- 1.7.12.1
[PATCH v2 03/20] cli: add stub for insert command
The notmuch insert command should read a message from standard input and deliver it to a Maildir folder, and then incorporate the message into the notmuch database. Essentially it moves the functionality of notmuch-deliver into notmuch. Though it could be used as an alternative to notmuch new, the reason I want this is to allow my notmuch frontend to add postponed or sent messages to the mail store and notmuch database, without resorting to another tool (e.g. notmuch-deliver) nor directly modifying the maildir. --- Makefile.local | 1 + notmuch-client.h | 3 +++ notmuch-insert.c | 43 +++ notmuch.c| 3 +++ 4 files changed, 50 insertions(+) create mode 100644 notmuch-insert.c diff --git a/Makefile.local b/Makefile.local index 2b91946..6bbd588 100644 --- a/Makefile.local +++ b/Makefile.local @@ -261,6 +261,7 @@ notmuch_client_srcs = \ notmuch-config.c\ notmuch-count.c \ notmuch-dump.c \ + notmuch-insert.c\ notmuch-new.c \ notmuch-reply.c \ notmuch-restore.c \ diff --git a/notmuch-client.h b/notmuch-client.h index a7c3df2..c0d0e93 100644 --- a/notmuch-client.h +++ b/notmuch-client.h @@ -135,6 +135,9 @@ int notmuch_dump_command (void *ctx, int argc, char *argv[]); int +notmuch_insert_command (void *ctx, int argc, char *argv[]); + +int notmuch_new_command (void *ctx, int argc, char *argv[]); int diff --git a/notmuch-insert.c b/notmuch-insert.c new file mode 100644 index 000..21424cf --- /dev/null +++ b/notmuch-insert.c @@ -0,0 +1,43 @@ +/* notmuch - Not much of an email program, (just index and search) + * + * Copyright © 2012 Peter Wang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://www.gnu.org/licenses/ . + * + * Author: Peter Wang noval...@gmail.com + */ + +#include notmuch-client.h + +int +notmuch_insert_command (void *ctx, int argc, char *argv[]) +{ +notmuch_config_t *config; +notmuch_database_t *notmuch; +const char *db_path; + +config = notmuch_config_open (ctx, NULL, NULL); +if (config == NULL) + return 1; + +db_path = notmuch_config_get_database_path (config); + +if (notmuch_database_open (notmuch_config_get_database_path (config), + NOTMUCH_DATABASE_MODE_READ_WRITE, notmuch)) + return 1; + +notmuch_database_destroy (notmuch); + +return 1; +} diff --git a/notmuch.c b/notmuch.c index 477a09c..86239fd 100644 --- a/notmuch.c +++ b/notmuch.c @@ -53,6 +53,9 @@ static command_t commands[] = { { new, notmuch_new_command, [options...], Find and import new messages to the notmuch database. }, +{ insert, notmuch_insert_command, + [options...] [--] [+tag|-tag ...] message, + Add a new message into the maildir and notmuch database. }, { search, notmuch_search_command, [options...] search-terms [...], Search for messages matching the given search terms. }, -- 1.7.12.1 ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch