// Copyright 2023 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package recipes.fuchsia.shac;

message InputProperties {
  // Remote repository.
  string remote = 1;

  // Basename of shac Starlark files to run, defaults to "shac.star".
  string entrypoint = 2;

  // Optional bootstrap script to run to download additional dependencies.
  // Should be a relative path to an executable within the checkout.
  string bootstrap_step = 3;

  // Relative path to a shac executable within the checkout. If unset, shac will
  // be installed from CIPD at the version pinned in
  // recipes/shac.resources/cipd.ensure.
  string shac_path = 4;
}
