daemon: Add 'built-in-builders' RPC.

* nix/libstore/builtins.cc (builtinBuilderNames): New function.
* nix/libstore/builtins.hh (builtinBuilderNames): New declaration.
* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0x160.
(WorkerOp)[wopBuiltinBuilders]: New value.
* nix/nix-daemon/nix-daemon.cc (performOp): Handle it.
* guix/store.scm (operation-id)[built-in-builders]: New value.
* guix/store.scm (read-arg): Add 'string-list'.
(built-in-builders): New procedure.
* tests/derivations.scm ("built-in-builders"): New test.
This commit is contained in:
Ludovic Courtès 2016-11-13 22:59:54 +01:00
parent 94d92c7796
commit f9aefa2d5f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
6 changed files with 52 additions and 4 deletions

View file

@ -6,6 +6,7 @@
#include "archive.hh"
#include "affinity.hh"
#include "globals.hh"
#include "builtins.hh"
#include <algorithm>
@ -671,6 +672,14 @@ static void performOp(bool trusted, unsigned int clientVersion,
break;
}
case wopBuiltinBuilders: {
startWork();
auto names = builtinBuilderNames();
stopWork();
writeStrings(names, to);
break;
}
default:
throw Error(format("invalid operation %1%") % op);
}