mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-01 22:15:51 +00:00
5f40b8a0bc
Enforcing inclusion of our OSS license at the top of .ts and .tsx files. Also updates any relevant files in the repo that were previously missing the license comment. An additional `@license` comment is added to client/web/src/index.tsx to preserve the license in generated Javascript. Updates #10261 Signed-off-by: Sonia Appasamy <sonia@tailscale.com>
63 lines
1.5 KiB
Bash
Executable File
63 lines
1.5 KiB
Bash
Executable File
#!/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 <<EOF
|
|
// Copyright (c) Tailscale Inc & AUTHORS
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
EOF
|
|
)
|
|
if [ "$got" = "$want" ]; then
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
if [ $# != 1 ]; then
|
|
echo "Usage: $0 rootdir" >&2
|
|
exit 1
|
|
fi
|
|
|
|
fail=0
|
|
for file in $(find $1 \( -name '*.go' -or -name '*.tsx' -or -name '*.ts' -not -name '*.config.ts' \) -not -path '*/.git/*' -not -path '*/node_modules/*'); 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
|