1*f578df4fSJingwen Chen# Copyright 2022 Google LLC 2*f578df4fSJingwen Chen# 3*f578df4fSJingwen Chen# Licensed under the Apache License, Version 2.0 (the "License"); 4*f578df4fSJingwen Chen# you may not use this file except in compliance with the License. 5*f578df4fSJingwen Chen# You may obtain a copy of the License at 6*f578df4fSJingwen Chen# 7*f578df4fSJingwen Chen# https://www.apache.org/licenses/LICENSE-2.0 8*f578df4fSJingwen Chen# 9*f578df4fSJingwen Chen# Unless required by applicable law or agreed to in writing, software 10*f578df4fSJingwen Chen# distributed under the License is distributed on an "AS IS" BASIS, 11*f578df4fSJingwen Chen# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*f578df4fSJingwen Chen# See the License for the specific language governing permissions and 13*f578df4fSJingwen Chen# limitations under the License. 14*f578df4fSJingwen Chen"""Rules for declaring the licenses used by a package. 15*f578df4fSJingwen Chen 16*f578df4fSJingwen Chen""" 17*f578df4fSJingwen Chen 18*f578df4fSJingwen Chenload( 19*f578df4fSJingwen Chen "@rules_license//rules:providers.bzl", 20*f578df4fSJingwen Chen "LicenseInfo", 21*f578df4fSJingwen Chen "LicenseKindInfo", 22*f578df4fSJingwen Chen) 23*f578df4fSJingwen Chen 24*f578df4fSJingwen Chen# Debugging verbosity 25*f578df4fSJingwen Chen_VERBOSITY = 0 26*f578df4fSJingwen Chen 27*f578df4fSJingwen Chendef _debug(loglevel, msg): 28*f578df4fSJingwen Chen if _VERBOSITY > loglevel: 29*f578df4fSJingwen Chen print(msg) # buildifier: disable=print 30*f578df4fSJingwen Chen 31*f578df4fSJingwen Chen# 32*f578df4fSJingwen Chen# license() 33*f578df4fSJingwen Chen# 34*f578df4fSJingwen Chen 35*f578df4fSJingwen Chendef license_rule_impl(ctx): 36*f578df4fSJingwen Chen provider = LicenseInfo( 37*f578df4fSJingwen Chen license_kinds = tuple([k[LicenseKindInfo] for k in ctx.attr.license_kinds]), 38*f578df4fSJingwen Chen copyright_notice = ctx.attr.copyright_notice, 39*f578df4fSJingwen Chen package_name = ctx.attr.package_name or ctx.build_file_path.rstrip("/BUILD"), 40*f578df4fSJingwen Chen package_url = ctx.attr.package_url, 41*f578df4fSJingwen Chen package_version = ctx.attr.package_version, 42*f578df4fSJingwen Chen license_text = ctx.file.license_text, 43*f578df4fSJingwen Chen label = ctx.label, 44*f578df4fSJingwen Chen namespace = ctx.attr.namespace, 45*f578df4fSJingwen Chen ) 46*f578df4fSJingwen Chen _debug(0, provider) 47*f578df4fSJingwen Chen return [provider] 48