show trace of errors when using --show-trace

This commit is contained in:
Fabian Schmitthenner 2016-03-19 13:52:39 +00:00
parent e37bca136e
commit 828cf7b058

View file

@ -14,6 +14,7 @@
#include "get-drvs.hh"
#include "derivations.hh"
#include "affinity.hh"
#include "globals.hh"
using namespace std;
using namespace nix;
@ -108,6 +109,7 @@ NixRepl::NixRepl(const Strings & searchPath, nix::ref<Store> store)
void NixRepl::mainLoop(const Strings & files)
{
string error = ANSI_RED "error:" ANSI_NORMAL " ";
std::cout << "Welcome to Nix version " << NIX_VERSION << ". Type :? for help." << std::endl << std::endl;
for (auto & i : files)
@ -138,12 +140,12 @@ void NixRepl::mainLoop(const Strings & files)
// input without clearing the input so far.
continue;
} else {
printMsg(lvlError, "error: " + e.msg());
printMsg(lvlError, format(error + "%1%%2%") % (settings.showTrace ? e.prefix() : "") % e.msg());
}
} catch (Error & e) {
printMsg(lvlError, "error: " + e.msg());
printMsg(lvlError, format(error + "%1%%2%") % (settings.showTrace ? e.prefix() : "") % e.msg());
} catch (Interrupted & e) {
printMsg(lvlError, "error: " + e.msg());
printMsg(lvlError, format(error + "%1%%2%") % (settings.showTrace ? e.prefix() : "") % e.msg());
}
// We handled the current input fully, so we should clear it and read brand new input.