about summary refs log tree commit diff
path: root/tools/depot-scanner/depot_scanner.proto
blob: ecb5b1cb333513b2681c91a6a0a536284e310830 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// 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.
  // buf:lint:ignore FIELD_LOWER_SNAKE_CASE
  string attrAsPath = 3;
}

message ScanResponse {
  // buf:lint:ignore FIELD_LOWER_SNAKE_CASE
  repeated string depotPath = 1;
  // buf:lint:ignore FIELD_LOWER_SNAKE_CASE
  repeated string nixStorePath = 2;
  // buf:lint:ignore FIELD_LOWER_SNAKE_CASE
  repeated string corePkgsPath = 4;
  // buf:lint:ignore FIELD_LOWER_SNAKE_CASE
  repeated string otherPath = 3;

  bytes derivation = 5;
}

message ArchiveRequest {
  // buf:lint:ignore FIELD_LOWER_SNAKE_CASE
  repeated string depotPath = 1;
}

message ArchiveChunk {
  bytes chunk = 1;
}

service DepotScanService {
  rpc Scan(ScanRequest) returns (ScanResponse);

  rpc MakeArchive(ArchiveRequest) returns (stream ArchiveChunk);
}