1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-05 04:01:47 +02:00

* A command to register successor fstate expressions.

Unifying substitutes and successors isn't very feasible for now,
  since substitutes are only used when no path with a certain is
  known.  Therefore, a normal form of some expression stored as a
  substitute would not be used unless the expression itself was
  missing.
This commit is contained in:
Eelco Dolstra 2003-07-10 18:48:11 +00:00
parent 8511571f65
commit e5fbf58041
3 changed files with 28 additions and 1 deletions

View file

@ -26,6 +26,7 @@ static ArgType argType = atpUnknown;
--add / -A: copy a path to the Nix store
--query / -q: query information
--successor: register a successor expression
--substitute: register a substitute expression
--dump: dump a path as a Nix archive
@ -183,6 +184,21 @@ static void opQuery(Strings opFlags, Strings opArgs)
}
static void opSuccessor(Strings opFlags, Strings opArgs)
{
if (!opFlags.empty()) throw UsageError("unknown flag");
if (opArgs.size() % 2) throw UsageError("expecting even number of arguments");
for (Strings::iterator i = opArgs.begin();
i != opArgs.end(); )
{
Hash fsHash = parseHash(*i++);
Hash scHash = parseHash(*i++);
registerSuccessor(fsHash, scHash);
}
}
static void opSubstitute(Strings opFlags, Strings opArgs)
{
if (!opFlags.empty()) throw UsageError("unknown flag");
@ -288,6 +304,8 @@ void run(Strings args)
op = opAdd;
else if (arg == "--query" || arg == "-q")
op = opQuery;
else if (arg == "--successor")
op = opSuccessor;
else if (arg == "--substitute")
op = opSubstitute;
else if (arg == "--dump")