mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
CLI: set up infrastructure to make path to gpg configurable.
GMIME takes a path to gpg, but we hardcode that path. In this commit we set up argument passing and option storage to allow this path to specified in the top level notmuch command.
This commit is contained in:
parent
aed5ec4350
commit
21ecd7369a
4 changed files with 10 additions and 7 deletions
10
crypto.c
10
crypto.c
|
@ -24,12 +24,12 @@
|
||||||
|
|
||||||
/* Create a GPG context (GMime 2.6) */
|
/* Create a GPG context (GMime 2.6) */
|
||||||
static notmuch_crypto_context_t *
|
static notmuch_crypto_context_t *
|
||||||
create_gpg_context (void)
|
create_gpg_context (const char *gpgpath)
|
||||||
{
|
{
|
||||||
notmuch_crypto_context_t *gpgctx;
|
notmuch_crypto_context_t *gpgctx;
|
||||||
|
|
||||||
/* TODO: GMimePasswordRequestFunc */
|
/* TODO: GMimePasswordRequestFunc */
|
||||||
gpgctx = g_mime_gpg_context_new (NULL, "gpg");
|
gpgctx = g_mime_gpg_context_new (NULL, gpgpath ? gpgpath : "gpg");
|
||||||
if (! gpgctx)
|
if (! gpgctx)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -43,13 +43,13 @@ create_gpg_context (void)
|
||||||
|
|
||||||
/* Create a GPG context (GMime 2.4) */
|
/* Create a GPG context (GMime 2.4) */
|
||||||
static notmuch_crypto_context_t *
|
static notmuch_crypto_context_t *
|
||||||
create_gpg_context (void)
|
create_gpg_context (const char* gpgpath)
|
||||||
{
|
{
|
||||||
GMimeSession *session;
|
GMimeSession *session;
|
||||||
notmuch_crypto_context_t *gpgctx;
|
notmuch_crypto_context_t *gpgctx;
|
||||||
|
|
||||||
session = g_object_new (g_mime_session_get_type (), NULL);
|
session = g_object_new (g_mime_session_get_type (), NULL);
|
||||||
gpgctx = g_mime_gpg_context_new (session, "gpg");
|
gpgctx = g_mime_gpg_context_new (session, gpgpath ? gpgpath : "gpg");
|
||||||
g_object_unref (session);
|
g_object_unref (session);
|
||||||
|
|
||||||
if (! gpgctx)
|
if (! gpgctx)
|
||||||
|
@ -83,7 +83,7 @@ notmuch_crypto_get_context (notmuch_crypto_t *crypto, const char *protocol)
|
||||||
if (strcasecmp (protocol, "application/pgp-signature") == 0 ||
|
if (strcasecmp (protocol, "application/pgp-signature") == 0 ||
|
||||||
strcasecmp (protocol, "application/pgp-encrypted") == 0) {
|
strcasecmp (protocol, "application/pgp-encrypted") == 0) {
|
||||||
if (! crypto->gpgctx) {
|
if (! crypto->gpgctx) {
|
||||||
crypto->gpgctx = create_gpg_context ();
|
crypto->gpgctx = create_gpg_context (crypto->gpgpath);
|
||||||
if (! crypto->gpgctx)
|
if (! crypto->gpgctx)
|
||||||
fprintf (stderr, "Failed to construct gpg context.\n");
|
fprintf (stderr, "Failed to construct gpg context.\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,6 +80,7 @@ typedef struct notmuch_crypto {
|
||||||
notmuch_crypto_context_t* gpgctx;
|
notmuch_crypto_context_t* gpgctx;
|
||||||
notmuch_bool_t verify;
|
notmuch_bool_t verify;
|
||||||
notmuch_bool_t decrypt;
|
notmuch_bool_t decrypt;
|
||||||
|
const char *gpgpath;
|
||||||
} notmuch_crypto_t;
|
} notmuch_crypto_t;
|
||||||
|
|
||||||
typedef struct notmuch_show_params {
|
typedef struct notmuch_show_params {
|
||||||
|
|
|
@ -769,7 +769,8 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
.part = -1,
|
.part = -1,
|
||||||
.crypto = {
|
.crypto = {
|
||||||
.verify = FALSE,
|
.verify = FALSE,
|
||||||
.decrypt = FALSE
|
.decrypt = FALSE,
|
||||||
|
.gpgpath = NULL
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
int format = FORMAT_DEFAULT;
|
int format = FORMAT_DEFAULT;
|
||||||
|
|
|
@ -1082,7 +1082,8 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
.output_body = TRUE,
|
.output_body = TRUE,
|
||||||
.crypto = {
|
.crypto = {
|
||||||
.verify = FALSE,
|
.verify = FALSE,
|
||||||
.decrypt = FALSE
|
.decrypt = FALSE,
|
||||||
|
.gpgpath = NULL
|
||||||
},
|
},
|
||||||
.include_html = FALSE
|
.include_html = FALSE
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue