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>
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			938 B
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
| }
 | |
| 
 |