tvl-depot/tools/depot-scanner/depot_scanner.proto
Kane York dfc351b463 feat(tools/depot-scanner): init project
depot-scanner is a tool that runs Nix and parses the --trace-file-access output to deduce what files are necessary to evaluate a derivation.

Take DEPOT_ROOT from the environment. If depotRoot doesn't exist, print an error early.

Fix the build of the protobuf library. Switch to the GRPC build rule, as a service is in this proto file.

Create the PathType enum and parse it from cmdline flags.

Change-Id: I537b5c6bceecf76ca510f7ac04ab9dad7785feb1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1769
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-08-20 03:05:40 +00:00

46 lines
938 B
Protocol Buffer

// Copyright 2020 TVL
// SPDX-License-Identifier: MIT
syntax = "proto3";
package tvl.tools.depot_scanner;
option go_package = "code.tvl.fyi/tools/depot-scanner/proto";
enum PathType {
UNKNOWN = 0;
DEPOT = 1;
STORE = 2;
CORE = 3;
}
message ScanRequest {
// Which revision of the depot
string revision = 1;
string attr = 2;
// Optionally, the attr to evaluate can be provided as a path to a folder or a
// .nix file. This is used by the HTTP service.
string attrAsPath = 3;
}
message ScanResponse {
repeated string depotPath = 1;
repeated string nixStorePath = 2;
repeated string corePkgsPath = 4;
repeated string otherPath = 3;
bytes derivation = 5;
}
message ArchiveRequest {
repeated string depotPath = 1;
}
message ArchiveChunk {
bytes chunk = 1;
}
service DepotScanService {
rpc Scan(ScanRequest) returns (ScanResponse);
rpc MakeArchive(ArchiveRequest) returns (stream ArchiveChunk);
}