aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2003-10-22 11:04:57 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2003-10-22 11:04:57 +0000
commit9d95aafe8ccf9d037dc97bb875bc62b919d8b123 (patch)
treef8698c805f73f8f75c4614e23af2608d09097f97
parent143427f90b9b54bd957cd50a2110157ddfedeeaf (diff)
* Ad hoc per-package logging. When Nix performs a derivation, it now
writes stdout/stderr of the builder to ${prefix}/var/log/nix/x, where x is the file name of the derivation expression, e.g., /nix/var/log/nix/54256391624be04fcb426048ae3ea0a4-d-pan-0.14.2.nix Note that consecutive builds of the same expression overwrite, rather than append to, existing log files.
-rw-r--r--src/libnix/exec.cc8
-rw-r--r--src/libnix/exec.hh3
-rw-r--r--src/libnix/normalise.cc3
3 files changed, 8 insertions, 6 deletions
diff --git a/src/libnix/exec.cc b/src/libnix/exec.cc
index a51b605d8..4934712f9 100644
--- a/src/libnix/exec.cc
+++ b/src/libnix/exec.cc
@@ -16,14 +16,14 @@ static string pathNullDevice = "/dev/null";
/* Run a program. */
void runProgram(const string & program,
- const Strings & args, const Environment & env)
+ const Strings & args, const Environment & env,
+ const string & logFileName)
{
/* Create a log file. */
- string logFileName = nixLogDir + "/run.log";
string logCommand =
verbosity >= lvlDebug
- ? "tee -a " + logFileName + " >&2"
- : "cat >> " + logFileName;
+ ? "tee " + logFileName + " >&2"
+ : "cat > " + logFileName;
/* !!! auto-pclose on exit */
FILE * logFile = popen(logCommand.c_str(), "w"); /* !!! escaping */
if (!logFile)
diff --git a/src/libnix/exec.hh b/src/libnix/exec.hh
index 8d410e404..fc5bd6ac8 100644
--- a/src/libnix/exec.hh
+++ b/src/libnix/exec.hh
@@ -15,7 +15,8 @@ typedef map<string, string> Environment;
/* Run a program. */
void runProgram(const string & program,
- const Strings & args, const Environment & env);
+ const Strings & args, const Environment & env,
+ const string & logFileName);
#endif /* !__EXEC_H */
diff --git a/src/libnix/normalise.cc b/src/libnix/normalise.cc
index 196fcad2e..0ce38d68a 100644
--- a/src/libnix/normalise.cc
+++ b/src/libnix/normalise.cc
@@ -164,7 +164,8 @@ Path normaliseNixExpr(const Path & _nePath, PathSet pending)
/* Run the builder. */
msg(lvlChatty, format("building..."));
- runProgram(ne.derivation.builder, ne.derivation.args, env);
+ runProgram(ne.derivation.builder, ne.derivation.args, env,
+ nixLogDir + "/" + baseNameOf(nePath));
msg(lvlChatty, format("build completed"));
} else