mu: rename --my-address into --personal-address

This makes things a bit more uniform with all the places where we use
"personal".

--my-address remains as an alias for the command-line option.

Add unit test.

Resolves #2806.
This commit is contained in:
Dirk-Jan C. Binnema
2025-05-21 20:18:43 +03:00
parent ef71b5372f
commit f75e1203d4
9 changed files with 85 additions and 39 deletions

View File

@ -1,5 +1,5 @@
/*
** Copyright (C) 2023 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
** Copyright (C) 2023-2025 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
**
** 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
@ -56,8 +56,8 @@ Mu::mu_cmd_init(const Options& opts)
conf.set<Config::Id::MaxMessageSize>(*opts.init.max_msg_size);
if (opts.init.batch_size && *opts.init.batch_size != 0)
conf.set<Config::Id::BatchSize>(*opts.init.batch_size);
if (!opts.init.my_addresses.empty())
conf.set<Config::Id::PersonalAddresses>(opts.init.my_addresses);
if (!opts.init.personal_addresses.empty())
conf.set<Config::Id::PersonalAddresses>(opts.init.personal_addresses);
if (!opts.init.ignored_addresses.empty())
conf.set<Config::Id::IgnoredAddresses>(opts.init.ignored_addresses);
if (opts.init.support_ngrams)
@ -130,6 +130,38 @@ test_mu_init_maildir()
assert_equal(store.root_maildir(), MU_TESTMAILDIR2);
}
static void
test_mu_init_personal()
{
TempDir temp_dir{};
const auto mu_home{temp_dir.path()};
g_setenv("MAILDIR", MU_TESTMAILDIR2, 1);
auto res1 = run_command({MU_PROGRAM, "--quiet", "init",
"--muhome", mu_home, "--personal-address", "foo@example.com",
"--my-address", "bar@example.com", // backward compat
"--personal-address", "/h.llo@example\\.com/"});
assert_valid_command(res1);
auto&& store = unwrap(Store::make(join_paths(temp_dir.path(), "xapian")));
g_assert_true(store.empty());
assert_equal(store.root_maildir(), MU_TESTMAILDIR2);
const auto& ccache{store.contacts_cache()};
// just some basic tests to see the parameters made it through.
g_assert_true(ccache.is_personal("foo@example.com"));
g_assert_true(ccache.is_personal("bar@example.com"));
g_assert_true(ccache.is_personal("hello@example.com"));
g_assert_true(ccache.is_personal("hallo@example.com"));
g_assert_false(ccache.is_personal("faa@example.com"));
g_assert_false(ccache.is_personal("baa@example.com"));
}
int
main(int argc, char* argv[])
{
@ -137,6 +169,7 @@ main(int argc, char* argv[])
g_test_add_func("/cmd/init/basic", test_mu_init_basic);
g_test_add_func("/cmd/init/maildir", test_mu_init_maildir);
g_test_add_func("/cmd/init/personal", test_mu_init_personal);
return g_test_run();
}

View File

@ -465,8 +465,9 @@ sub_init(CLI::App& sub, Options& opts)
->transform(ExpandPath, "expand maildir path");
// don't attempt to canonicalize; in bash this breaks together with
// expand path.
sub.add_option("--my-address", opts.init.my_addresses,
"Personal e-mail address or regexp")
sub.add_option("--personal-address,--my-address",
opts.init.personal_addresses,
"Personal e-mail address or regexp (can be used multiple titmes)")
->type_name("<address>");
sub.add_option("--ignored-address", opts.init.ignored_addresses,
"Ignored e-mail address or regexp")
@ -481,6 +482,7 @@ sub_init(CLI::App& sub, Options& opts)
sub.add_flag("--reinit", opts.init.reinit,
"Re-initialize database with current settings")
->excludes("--maildir")
->excludes("--personal-address")
->excludes("--my-address")
->excludes("--ignored-address")
->excludes("--max-message-size")

View File

@ -188,7 +188,7 @@ struct Options {
*/
struct Init {
std::string maildir; /**< where the mails are */
StringVec my_addresses; /**< personal e-mail addresses */
StringVec personal_addresses; /**< personal e-mail addresses */
StringVec ignored_addresses; /**< addresses to be ignored for
* the contacts-cache */
OptSize max_msg_size; /**< max size for message files */