From 6e377900120671ad7a57fdda6c7c664d1e121229 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Sun, 15 May 2022 13:40:44 +0300 Subject: [PATCH] mu: improve error reporting --- lib/mu-store.cc | 8 ++------ lib/utils/mu-error.hh | 2 +- mu/mu-cmd.cc | 2 -- mu/mu.cc | 5 ++++- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/mu-store.cc b/lib/mu-store.cc index 56861d39..9fd7313d 100644 --- a/lib/mu-store.cc +++ b/lib/mu-store.cc @@ -132,14 +132,10 @@ struct Store::Private { } catch (const Xapian::DatabaseLockError& xde) { throw Mu::Error(Error::Code::StoreLock, - "failed to lock store @ %s: %s", - db_path.c_str(), - xde.get_msg().c_str()); + "%s", xde.get_msg().c_str()); } catch (const Xapian::DatabaseError& xde) { throw Mu::Error(Error::Code::Store, - "failed to open store @ %s: %s", - db_path.c_str(), - xde.get_msg().c_str()); + "%s", xde.get_msg().c_str()); } catch (...) { throw Mu::Error(Error::Code::Internal, "something went wrong when opening store @ %s", diff --git a/lib/utils/mu-error.hh b/lib/utils/mu-error.hh index 15477d69..c67fc5a1 100644 --- a/lib/utils/mu-error.hh +++ b/lib/utils/mu-error.hh @@ -150,7 +150,7 @@ struct Error final : public std::exception { } constexpr uint8_t exit_code() const { - return ((static_cast(code_) >> 15) & 0xf); + return ((static_cast(code_) >> 15) & 0xff); } diff --git a/mu/mu-cmd.cc b/mu/mu-cmd.cc index ba854d83..7fdd61fd 100644 --- a/mu/mu-cmd.cc +++ b/mu/mu-cmd.cc @@ -564,12 +564,10 @@ Mu::mu_cmd_execute(const MuConfig* opts) try { case MU_CONFIG_CMD_CFIND: return with_readonly_store(mu_cmd_cfind, opts); - break; case MU_CONFIG_CMD_FIND: return cmd_find(opts); case MU_CONFIG_CMD_INFO: return with_readonly_store(cmd_info, opts); - break; /* writable store */ diff --git a/mu/mu.cc b/mu/mu.cc index 9400b93c..731ed018 100644 --- a/mu/mu.cc +++ b/mu/mu.cc @@ -57,7 +57,7 @@ handle_result(const Result& res, MuConfig* conf) if (!res.error().is_soft_error()) { std::cerr << col.fg(Color::Red) << "error" << col.reset() << ": " << col.fg(Color::BrightYellow) - << res.error().what() << "something went wrong" << "\n"; + << res.error().what() << "\n"; } else std::cerr << col.fg(Color::BrightBlue) << res.error().what() << '\n'; @@ -69,6 +69,9 @@ handle_result(const Result& res, MuConfig* conf) if (conf && mu_config_cmd_is_valid(conf->cmd)) mu_config_show_help(conf->cmd); break; + case Error::Code::StoreLock: + std::cerr << "Perhaps mu is already running?\n"; + break; case Error::Code::SchemaMismatch: std::cerr << "Please (re)initialize mu with 'mu init' " << "see mu-init(1) for details\n";