forked from lix-project/lix
* Some more nesting.
This commit is contained in:
parent
777e13b94b
commit
7823db2137
|
@ -164,14 +164,18 @@ Path normaliseStoreExpr(const Path & _nePath, PathSet pending)
|
|||
}
|
||||
|
||||
/* Run the builder. */
|
||||
printMsg(lvlChatty, format("building..."));
|
||||
startNest(nest2, lvlChatty,
|
||||
format("executing builder `%1%'") % ne.derivation.builder);
|
||||
runProgram(ne.derivation.builder, ne.derivation.args, env,
|
||||
nixLogDir + "/" + baseNameOf(nePath));
|
||||
printMsg(lvlChatty, format("build completed"));
|
||||
printMsg(lvlChatty, format("builder completed"));
|
||||
nest2.close();
|
||||
|
||||
} else
|
||||
printMsg(lvlChatty, format("fast build succesful"));
|
||||
|
||||
startNest(nest3, lvlChatty, format("determining closure value"));
|
||||
|
||||
/* Check whether the output paths were created, and grep each
|
||||
output path to determine what other paths it references. Also make all
|
||||
output paths read-only. */
|
||||
|
@ -188,8 +192,11 @@ Path normaliseStoreExpr(const Path & _nePath, PathSet pending)
|
|||
|
||||
/* For this output path, find the references to other paths contained
|
||||
in it. */
|
||||
startNest(nest2, lvlChatty,
|
||||
format("scanning for store references in `%1%'") % ne.derivation.builder);
|
||||
Strings refPaths = filterReferences(path,
|
||||
Strings(allPaths.begin(), allPaths.end()));
|
||||
nest2.close();
|
||||
|
||||
/* Construct a closure element for this output path. */
|
||||
ClosureElem elem;
|
||||
|
@ -241,11 +248,13 @@ Path normaliseStoreExpr(const Path & _nePath, PathSet pending)
|
|||
{
|
||||
PathSet::iterator j = donePaths.find(i->first);
|
||||
if (j == donePaths.end())
|
||||
debug(format("NOT referenced: `%1%'") % i->first);
|
||||
debug(format("unreferenced input: `%1%'") % i->first);
|
||||
else
|
||||
debug(format("referenced: `%1%'") % i->first);
|
||||
debug(format("referenced input: `%1%'") % i->first);
|
||||
}
|
||||
|
||||
nest3.close();
|
||||
|
||||
/* Write the normal form. This does not have to occur in the
|
||||
transaction below because writing terms is idem-potent. */
|
||||
ATerm nfTerm = unparseStoreExpr(nf);
|
||||
|
|
|
@ -144,11 +144,11 @@ Strings readDirectory(const Path & path)
|
|||
}
|
||||
|
||||
|
||||
void deletePath(const Path & path)
|
||||
static void _deletePath(const Path & path)
|
||||
{
|
||||
checkInterrupt();
|
||||
|
||||
printMsg(lvlVomit, format("deleting path `%1%'") % path);
|
||||
printMsg(lvlVomit, format("%1%") % path);
|
||||
|
||||
struct stat st;
|
||||
if (lstat(path.c_str(), &st))
|
||||
|
@ -164,7 +164,7 @@ void deletePath(const Path & path)
|
|||
}
|
||||
|
||||
for (Strings::iterator i = names.begin(); i != names.end(); ++i)
|
||||
deletePath(path + "/" + *i);
|
||||
_deletePath(path + "/" + *i);
|
||||
}
|
||||
|
||||
if (remove(path.c_str()) == -1)
|
||||
|
@ -172,6 +172,14 @@ void deletePath(const Path & path)
|
|||
}
|
||||
|
||||
|
||||
void deletePath(const Path & path)
|
||||
{
|
||||
startNest(nest, lvlDebug,
|
||||
format("recursively deleting path `%1%'") % path);
|
||||
_deletePath(path);
|
||||
}
|
||||
|
||||
|
||||
void makePathReadOnly(const Path & path)
|
||||
{
|
||||
checkInterrupt();
|
||||
|
@ -238,11 +246,7 @@ Nest::Nest()
|
|||
|
||||
Nest::~Nest()
|
||||
{
|
||||
if (nest) {
|
||||
nestingLevel--;
|
||||
if (logType == ltEscapes)
|
||||
cerr << "\033[q";
|
||||
}
|
||||
close();
|
||||
}
|
||||
|
||||
|
||||
|
@ -259,14 +263,26 @@ void Nest::open(Verbosity level, const format & f)
|
|||
{
|
||||
if (level <= verbosity) {
|
||||
if (logType == ltEscapes)
|
||||
cerr << "\033[" << escVerbosity(level) << "p";
|
||||
printMsg_(level, f);
|
||||
cerr << "\033[" << escVerbosity(level) << "p"
|
||||
<< f.str() << "\n";
|
||||
else
|
||||
printMsg_(level, f);
|
||||
nest = true;
|
||||
nestingLevel++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Nest::close()
|
||||
{
|
||||
if (nest) {
|
||||
nestingLevel--;
|
||||
if (logType == ltEscapes)
|
||||
cerr << "\033[q";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void printMsg_(Verbosity level, const format & f)
|
||||
{
|
||||
checkInterrupt();
|
||||
|
|
|
@ -127,6 +127,7 @@ public:
|
|||
Nest();
|
||||
~Nest();
|
||||
void open(Verbosity level, const format & f);
|
||||
void close();
|
||||
};
|
||||
|
||||
void printMsg_(Verbosity level, const format & f);
|
||||
|
|
Loading…
Reference in a new issue