From 5e2cf44a4d5d70f0dbed7b21257bd6d15538b3b2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 22 Jun 2004 11:03:41 +0000 Subject: [PATCH] * Put WEXITSTATUS stuff somewhere else. --- src/libstore/normalise.cc | 4 ++-- src/libstore/store.cc | 2 +- src/libutil/util.cc | 6 ++++++ src/libutil/util.hh | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/libstore/normalise.cc b/src/libstore/normalise.cc index 56ce5da7d..1632ad1fb 100644 --- a/src/libstore/normalise.cc +++ b/src/libstore/normalise.cc @@ -501,7 +501,7 @@ void NormalisationGoal::buildDone() debug(format("builder process for `%1%' finished") % nePath); /* Check the exit status. */ - if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { + if (!statusOk(status)) { deleteTmpDir(false); throw Error(format("builder for `%1%' %2%") % nePath % statusToString(status)); @@ -1371,7 +1371,7 @@ void SubstitutionGoal::finished() debug(format("substitute for `%1%' finished") % storePath); /* Check the exit status. */ - if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) + if (!statusOk(status)) throw Error(format("builder for `%1%' %2%") % storePath % statusToString(status)); diff --git a/src/libstore/store.cc b/src/libstore/store.cc index 2ec93d63b..9677f8422 100644 --- a/src/libstore/store.cc +++ b/src/libstore/store.cc @@ -161,7 +161,7 @@ void copyPath(const Path & src, const Path & dst) /* Wait for the child to finish. */ int status = pid.wait(true); - if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) + if (!statusOk(status)) throw Error(format("cannot copy `%1% to `%2%': child %3%") % src % dst % statusToString(status)); } diff --git a/src/libutil/util.cc b/src/libutil/util.cc index d4345eac3..5fb553d6d 100644 --- a/src/libutil/util.cc +++ b/src/libutil/util.cc @@ -611,3 +611,9 @@ string statusToString(int status) return "died abnormally"; } else return "succeeded"; } + + +bool statusOk(int status) +{ + return WIFEXITED(status) && WEXITSTATUS(status) == 0; +} diff --git a/src/libutil/util.hh b/src/libutil/util.hh index 67661eb5f..13f28dc22 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -243,5 +243,7 @@ Strings unpackStrings(const string & s); error string. */ string statusToString(int status); +bool statusOk(int status); + #endif /* !__UTIL_H */