xref: /aosp_15_r20/external/bazelbuild-rules_java/toolchains/fail_rule.bzl (revision abe8e1b943c923005d847f1e3cf6637de4ed1a1f)
1*abe8e1b9SSadaf Ebrahimi# Copyright 2020 The Bazel Authors. All rights reserved.
2*abe8e1b9SSadaf Ebrahimi#
3*abe8e1b9SSadaf Ebrahimi# Licensed under the Apache License, Version 2.0 (the "License");
4*abe8e1b9SSadaf Ebrahimi# you may not use this file except in compliance with the License.
5*abe8e1b9SSadaf Ebrahimi# You may obtain a copy of the License at
6*abe8e1b9SSadaf Ebrahimi#
7*abe8e1b9SSadaf Ebrahimi#    http://www.apache.org/licenses/LICENSE-2.0
8*abe8e1b9SSadaf Ebrahimi#
9*abe8e1b9SSadaf Ebrahimi# Unless required by applicable law or agreed to in writing, software
10*abe8e1b9SSadaf Ebrahimi# distributed under the License is distributed on an "AS IS" BASIS,
11*abe8e1b9SSadaf Ebrahimi# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*abe8e1b9SSadaf Ebrahimi# See the License for the specific language governing permissions and
13*abe8e1b9SSadaf Ebrahimi# limitations under the License.
14*abe8e1b9SSadaf Ebrahimi
15*abe8e1b9SSadaf Ebrahimi"""A rule than fails during analysis."""
16*abe8e1b9SSadaf Ebrahimi
17*abe8e1b9SSadaf Ebrahimidef _fail_rule_impl(ctx):
18*abe8e1b9SSadaf Ebrahimi    if ctx.attr.header:
19*abe8e1b9SSadaf Ebrahimi        fail("%s %s" % (ctx.attr.header, ctx.attr.message))
20*abe8e1b9SSadaf Ebrahimi    else:
21*abe8e1b9SSadaf Ebrahimi        fail(ctx.attr.message)
22*abe8e1b9SSadaf Ebrahimi
23*abe8e1b9SSadaf Ebrahimifail_rule = rule(
24*abe8e1b9SSadaf Ebrahimi    doc = "A rule that fails during analysis.",
25*abe8e1b9SSadaf Ebrahimi    implementation = _fail_rule_impl,
26*abe8e1b9SSadaf Ebrahimi    attrs = {
27*abe8e1b9SSadaf Ebrahimi        "header": attr.string(
28*abe8e1b9SSadaf Ebrahimi            doc = "Header of the message.",
29*abe8e1b9SSadaf Ebrahimi        ),
30*abe8e1b9SSadaf Ebrahimi        "message": attr.string(
31*abe8e1b9SSadaf Ebrahimi            mandatory = True,
32*abe8e1b9SSadaf Ebrahimi            doc = "Message to display.",
33*abe8e1b9SSadaf Ebrahimi        ),
34*abe8e1b9SSadaf Ebrahimi    },
35*abe8e1b9SSadaf Ebrahimi)
36