check_license•1.94 kB
#!/usr/bin/env bash
# Copyright 2025 Google LLC
#
# 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.
#
# SPDX-License-Identifier: Apache-2.0
# Checks that all files have a license header.
# set -x # Uncomment to enable tracing.
set -euo pipefail
TOP_DIR=$(git rev-parse --show-toplevel)
PY_DIR="${TOP_DIR}/py"
if ! command -v addlicense &>/dev/null; then
  if ! command -v go &>/dev/null; then
    echo "Please install go"
    exit 1
  fi
  echo "Installing addlicense..."
  go install github.com/google/addlicense@latest
fi
export PATH=$(go env GOPATH):$PATH
# NOTE: If you edit the ignore patterns, make sure to update the ignore patterns
# in the corresponding add_license script.
$HOME/go/bin/addlicense \
  -check \
  -c "Google LLC" \
  -s \
  -l apache \
  -ignore '**/.dist/**/*' \
  -ignore '**/.eggs/**/*' \
  -ignore '**/.idea/**/*' \
  -ignore '**/.mypy_cache/**/*' \
  -ignore '**/.next/**/*' \
  -ignore '**/.output/**/*' \
  -ignore '**/.pytest_cache/**/*' \
  -ignore '**/.ruff_cache/**/*' \
  -ignore '**/.venv/**/*' \
  -ignore '**/.wxt/**/*' \
  -ignore '**/__pycache__/**/*' \
  -ignore '**/bazel-*/**/*' \
  -ignore '**/coverage/**/*' \
  -ignore '**/develop-eggs/**/*' \
  -ignore '**/dist/**/*' \
  -ignore '**/node_modules/**/*' \
  -ignore '**/pnpm-lock.yaml' \
  -ignore '.nx/**/*' \
  -ignore '.trunk/**/*' \
  -ignore '**/*.toml' \
  -ignore '**/*.nix' \
  "$TOP_DIR"
uv run --directory "${PY_DIR}" liccheck