aboutsummaryrefslogtreecommitdiff
path: root/src/nix-store/main.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-01-09 14:18:28 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-01-09 14:18:28 +0000
commit46a71c857c617b5acbf3d1fdb8fb7e676a4881a2 (patch)
tree45d2ccb92a5852cd96a28598d20a3d6435bb7ea1 /src/nix-store/main.cc
parent30b31a8f6190dad40ca972b445420e10f47a9afc (diff)
* Option `--force-realise' in `nix-store --query'.
Diffstat (limited to 'src/nix-store/main.cc')
-rw-r--r--src/nix-store/main.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/nix-store/main.cc b/src/nix-store/main.cc
index 48752c2bf..078618a5d 100644
--- a/src/nix-store/main.cc
+++ b/src/nix-store/main.cc
@@ -61,9 +61,14 @@ static void opAdd(Strings opFlags, Strings opArgs)
}
-Path maybeNormalise(const Path & ne, bool normalise)
+Path maybeNormalise(const Path & ne, bool normalise, bool realise)
{
- return normalise ? normaliseStoreExpr(ne) : ne;
+ if (realise) {
+ Path ne2 = normaliseStoreExpr(ne);
+ realiseClosure(ne2);
+ return normalise ? ne2 : ne;
+ } else
+ return normalise ? normaliseStoreExpr(ne) : ne;
}
@@ -73,6 +78,7 @@ static void opQuery(Strings opFlags, Strings opArgs)
enum { qList, qRequisites, qPredecessors, qGraph
} query = qList;
bool normalise = false;
+ bool realise = false;
bool includeExprs = true;
bool includeSuccessors = false;
@@ -83,6 +89,7 @@ static void opQuery(Strings opFlags, Strings opArgs)
else if (*i == "--predecessors") query = qPredecessors;
else if (*i == "--graph") query = qGraph;
else if (*i == "--normalise" || *i == "-n") normalise = true;
+ else if (*i == "--force-realise" || *i == "-f") realise = true;
else if (*i == "--exclude-exprs") includeExprs = false;
else if (*i == "--include-successors") includeSuccessors = true;
else throw UsageError(format("unknown flag `%1%'") % *i);
@@ -94,7 +101,7 @@ static void opQuery(Strings opFlags, Strings opArgs)
i != opArgs.end(); i++)
{
StringSet paths = storeExprRoots(
- maybeNormalise(checkPath(*i), normalise));
+ maybeNormalise(checkPath(*i), normalise, realise));
for (StringSet::iterator j = paths.begin();
j != paths.end(); j++)
cout << format("%s\n") % *j;
@@ -108,7 +115,7 @@ static void opQuery(Strings opFlags, Strings opArgs)
i != opArgs.end(); i++)
{
StringSet paths2 = storeExprRequisites(
- maybeNormalise(checkPath(*i), normalise),
+ maybeNormalise(checkPath(*i), normalise, realise),
includeExprs, includeSuccessors);
paths.insert(paths2.begin(), paths2.end());
}
@@ -134,7 +141,7 @@ static void opQuery(Strings opFlags, Strings opArgs)
PathSet roots;
for (Strings::iterator i = opArgs.begin();
i != opArgs.end(); i++)
- roots.insert(maybeNormalise(checkPath(*i), normalise));
+ roots.insert(maybeNormalise(checkPath(*i), normalise, realise));
printDotGraph(roots);
break;
}