# Copyright 2023 The Shac Authors
#
# 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.

# TODO(olivernewman): Build github.com/protocolbuffers/txtpbfmt into shac and
# enforce formatting of shac.textproto files in all repos that use shac.

min_shac_version: "0.1.10"
allow_network: False
ignore: "/vendor/"
# Vendored code for test data only.
ignore: "/internal/engine/testdata/ut/"
ignore: "/internal/engine/testdata/vendored/"
# TODO(olivernewman): Make root non-writable once we can use caches and
# pass-throughs to avoid having checks install tools and do Go builds within the
# checkout directory.
writable_root: true
vars: [
    {
        name: "example_var"
        description: "An example runtime variable, not used anywhere"
        default: "foo"
    }
]
passthrough_env: [
    {
        # Provide Go commands access to the Go cache to speed up compilation.
        name: "GOCACHE",
        is_path: true
        writeable: true
    },
    {
        # The Go cache directory is computed based on $HOME in the absence of
        # $GOCACHE.
        # TODO(olivernewman): Implement support for constructing pass-throughs
        # using Starlark, and pass through the value returned by `go env
        # GOCACHE` instead of all of $HOME.
        name: "HOME",
        is_path: true
        writeable: true
    }
]
