Add support for specifying --muhome via MU_HOME in the environment
When you have multiple mu home directories, e.g. for the use case
detailed in my "Changing mu4e-{maildir,mu-home} from a context hook"
post to the mailing list it's quite inconvenient to have to hammer out
"mu --muhome=.. find .." every time you want to run some ad-hoc
command.
This allows me to set up a screen session where I do searches in mu
directory A in some screen panes, and searches in directory B in
others.
I initially called this MU_MUHOME but then I noticed that the perl
plugin has MUP_MU_HOME for analogous functionality, so I'm just
following its example.
The code I'm adding in mu-util.c is just a copy/paste & adjustment of
the same sort of already tested functionality in
mu_util_guess_maildir() just a few lines earlier.
This commit is contained in:
3
NEWS.org
3
NEWS.org
@ -16,6 +16,9 @@
|
|||||||
- prefer gpg2 for crypto
|
- prefer gpg2 for crypto
|
||||||
- fix a crash when running on OpenBSD
|
- fix a crash when running on OpenBSD
|
||||||
- fix --clear-links (broken filenames)
|
- fix --clear-links (broken filenames)
|
||||||
|
- You can now set the MU_HOME environment variable as an
|
||||||
|
alternative way of setting the mu homedir via the --muhome
|
||||||
|
commadn-line parameter.
|
||||||
|
|
||||||
*** mu4e
|
*** mu4e
|
||||||
|
|
||||||
|
|||||||
@ -199,9 +199,16 @@ gchar*
|
|||||||
mu_util_guess_mu_homedir (void)
|
mu_util_guess_mu_homedir (void)
|
||||||
{
|
{
|
||||||
const char* home;
|
const char* home;
|
||||||
|
const gchar *hdir1;
|
||||||
|
|
||||||
/* g_get_home_dir use /etc/passwd, not $HOME; this is better,
|
/* first, try MU_HOME */
|
||||||
* as HOME may be wrong when using 'sudo' etc.*/
|
hdir1 = g_getenv ("MU_HOME");
|
||||||
|
|
||||||
|
if (hdir1 && mu_util_check_dir (hdir1, TRUE, FALSE))
|
||||||
|
return g_strdup (hdir1);
|
||||||
|
|
||||||
|
/* then, g_get_home_dir use /etc/passwd, not $HOME; this is
|
||||||
|
* better, as HOME may be wrong when using 'sudo' etc.*/
|
||||||
home = g_get_home_dir ();
|
home = g_get_home_dir ();
|
||||||
|
|
||||||
if (!home) {
|
if (!home) {
|
||||||
|
|||||||
@ -62,7 +62,8 @@ char* mu_util_guess_maildir (void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* guess the place of the mu homedir (typically, ~/.mu). Note, this
|
* guess the place of the mu homedir; first try $MU_HOME; if it is
|
||||||
|
* unset or non-existant, try ~/.mu. Note, the fallback ~/.mu
|
||||||
* directory does not necessarily exist. mu_util_check_dir can be used
|
* directory does not necessarily exist. mu_util_check_dir can be used
|
||||||
* to check that
|
* to check that
|
||||||
*
|
*
|
||||||
|
|||||||
4
man/mu.1
4
man/mu.1
@ -152,7 +152,9 @@ including \fBmu\fR without any command.
|
|||||||
.TP
|
.TP
|
||||||
\fB\-\-muhome\fR
|
\fB\-\-muhome\fR
|
||||||
causes \fBmu\fR to use an alternative directory to
|
causes \fBmu\fR to use an alternative directory to
|
||||||
store and read its database and logs. By default, \fI~/.mu\fR is used.
|
store and read its database and logs. By default, \fBmu\fR uses
|
||||||
|
whatever the \fBMU_HOME\fR environment variable is set to; if it is
|
||||||
|
not set, \fI~/.mu\fR is used.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-d\fR, \fB\-\-debug\fR
|
\fB\-d\fR, \fB\-\-debug\fR
|
||||||
|
|||||||
@ -23,7 +23,9 @@ toolbar.
|
|||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-muhome\fR causes \fBmug\fR to use an alternative directory to read its
|
\fB\-\-muhome\fR causes \fBmug\fR to use an alternative directory to read its
|
||||||
database and bookmarks and write its logs. By default, \fI~/.mu\fR is used.
|
database and bookmarks and write its logs. By default, \fBmug\fR uses
|
||||||
|
whatever the \fBMU_HOME\fR environment variable is set to; if it is
|
||||||
|
not set, \fI~/.mu\fR is used.
|
||||||
|
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
Please report bugs if you find them:
|
Please report bugs if you find them:
|
||||||
|
|||||||
Reference in New Issue
Block a user