#!/bin/sh # # Copyright (c) Tailscale Inc & AUTHORS # SPDX-License-Identifier: BSD-3-Clause # # check_license_headers.sh checks that all Go files in the given # directory tree have a correct-looking Tailscale license header. check_file() { got=$1 want=$(cat <&2 exit 1 fi fail=0 for file in $(find $1 -name '*.go' -not -path '*/.git/*'); do case $file in $1/tempfork/*) # Skip, tempfork of third-party code ;; $1/wgengine/router/ifconfig_windows.go) # WireGuard copyright. ;; $1/cmd/tailscale/cli/authenticode_windows.go) # WireGuard copyright. ;; *_string.go) # Generated file from go:generate stringer ;; $1/control/controlbase/noiseexplorer_test.go) # Noiseexplorer.com copyright. ;; */zsyscall_windows.go) # Generated syscall wrappers ;; *) header="$(head -2 $file)" if ! check_file "$header"; then fail=1 echo "${file#$1/} doesn't have the right copyright header:" echo "$header" | sed -e 's/^/ /g' fi ;; esac done if [ $fail -ne 0 ]; then exit 1 fi