feat(3p/nix): Add main function for grpc daemon

Implement the main function for the new, proto-based nix daemon. This
mostly replicates the behavior of the previous nix daemon - it starts a
grpc server listening on the same nix socket path and supports the same
set of options - with the exception of --stdio, which has been renamed
to --pipe and documented in the man page.

Change-Id: Ib729283c1d5d35c0e1b0a968bc1f052f5527f2d7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1356
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
This commit is contained in:
Griffin Smith 2020-07-23 12:35:52 -04:00 committed by glittershark
parent 7c56fccdad
commit dcaba9de64
10 changed files with 174 additions and 14 deletions

View file

@ -167,6 +167,7 @@ Path canonPath(const Path& path, bool resolveSymlinks) {
return s.empty() ? "/" : s;
}
// TODO(grfn) remove in favor of std::filesystem::path::parent_path()
Path dirOf(absl::string_view path) {
Path::size_type pos = path.rfind('/');
if (pos == std::string::npos) {
@ -175,6 +176,7 @@ Path dirOf(absl::string_view path) {
return pos == 0 ? "/" : Path(path, 0, pos);
}
// TODO(grfn) remove in favor of std::filesystem::path::root_name()
std::string baseNameOf(const Path& path) {
if (path.empty()) {
return "";
@ -558,6 +560,7 @@ Path getDataDir() {
return dataDir;
}
// TODO(grfn): Remove in favor of std::filesystem::create_directories
Paths createDirs(const Path& path) {
Paths created;
if (path == "/") {