diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-09-21T14·21+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-09-21T14·54+0200 |
commit | 4546be1b3efd9956fe0f548fbf952b5912024577 (patch) | |
tree | ec7f1449f41085ea5c50dc04b83dd178c2c86822 /src/libutil | |
parent | c55bf085eb914bd06bba00670a293b3c0528b81f (diff) |
nix-build, nix-shell: Don't print error message if nix-store/nix-instantiate fails
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/util.cc | 2 | ||||
-rw-r--r-- | src/libutil/util.hh | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc index 2998506b5821..e2f5b087f13f 100644 --- a/src/libutil/util.cc +++ b/src/libutil/util.cc @@ -927,7 +927,7 @@ string runProgram(Path program, bool searchPath, const Strings & args, /* Wait for the child to finish. */ int status = pid.wait(true); if (!statusOk(status)) - throw ExecError(format("program ‘%1%’ %2%") + throw ExecError(status, format("program ‘%1%’ %2%") % program % statusToString(status)); return result; diff --git a/src/libutil/util.hh b/src/libutil/util.hh index 1a43bf400a03..259c73260da3 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -247,7 +247,16 @@ pid_t startProcess(std::function<void()> fun, const ProcessOptions & options = P string runProgram(Path program, bool searchPath = false, const Strings & args = Strings(), const string & input = ""); -MakeError(ExecError, Error) +class ExecError : public Error +{ +public: + int status; + + template<typename... Args> + ExecError(int status, Args... args) + : Error(args...), status(status) + { } +}; /* Convert a list of strings to a null-terminated vector of char *'s. The result must not be accessed beyond the lifetime of the |