1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // Copyright 2020 Google Inc. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto2";
- package sbox;
- option go_package = "sbox_proto";
- // A set of commands to run in a sandbox.
- message Manifest {
- // A list of commands to run in the sandbox.
- repeated Command commands = 1;
- // If set, GCC-style dependency files from any command that references __SBOX_DEPFILE__ will be
- // merged into the given output file relative to the $PWD when sbox was started.
- optional string output_depfile = 2;
- }
- // SandboxManifest describes a command to run in the sandbox.
- message Command {
- // A list of copy rules to run before the sandboxed command. The from field is relative to the
- // $PWD when sbox was run, the to field is relative to the top of the temporary sandbox directory.
- repeated Copy copy_before = 1;
- // If true, change the working directory to the top of the temporary sandbox directory before
- // running the command. If false, leave the working directory where it was when sbox was started.
- optional bool chdir = 2;
- // The command to run.
- required string command = 3;
- // A list of copy rules to run after the sandboxed command. The from field is relative to the
- // top of the temporary sandbox directory, the to field is relative to the $PWD when sbox was run.
- repeated Copy copy_after = 4;
- // An optional hash of the input files to ensure the textproto files and the sbox rule reruns
- // when the lists of inputs changes, even if the inputs are not on the command line.
- optional string input_hash = 5;
- // A list of files that will be copied before the sandboxed command, and whose contents should be
- // copied as if they were listed in copy_before.
- repeated RspFile rsp_files = 6;
- }
- // Copy describes a from-to pair of files to copy. The paths may be relative, the root that they
- // are relative to is specific to the context the Copy is used in and will be different for
- // from and to.
- message Copy {
- required string from = 1;
- required string to = 2;
- // If true, make the file executable after copying it.
- optional bool executable = 3;
- }
- // RspFile describes an rspfile that should be copied into the sandbox directory.
- message RspFile {
- // The path to the rsp file.
- required string file = 1;
- // A list of path mappings that should be applied to each file listed in the rsp file.
- repeated PathMapping path_mappings = 2;
- }
- // PathMapping describes a mapping from a path outside the sandbox to the path inside the sandbox.
- message PathMapping {
- required string from = 1;
- required string to = 2;
- }
|