blob: 7ded303dcb2bac48dc87b6738e88e720832d4b6f [file] [log] [blame]
#!/bin/bash
# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Update this year as needed.
readonly YEAR="201[6-8]"
usage() {
echo "Usage: `basename $0` <files>"
exit 1
}
check() {
local file="$1"
local valid=true
if [[ ! -f "${file}" ]]; then
echo "* File not found: ${file}"
valid=false
fi
local filetype=$(basename ${1##*.})
local prefix
case "${filetype}" in
dart|fidl|go|js)
prefix="// "
;;
gn|py|sh|yaml)
prefix="# "
;;
*)
echo "* Filetype not supported: ${filetype}"
error=true
esac
local line1="${prefix}Copyright ${YEAR} The Fuchsia Authors. All rights reserved."
local line2="${prefix}Use of this source code is governed by a BSD-style license that can be"
local line3="${prefix}found in the LICENSE file."
# If the first line starts with shebang, skip that line.
local offset=0
if [[ $(head -n 1 $1) = \#!* ]] ; then
offset=1
fi
tail -n +$(($offset + 1)) $1 | head -n 1 | grep -q "^${line1}$" || valid=false
tail -n +$(($offset + 2)) $1 | head -n 1 | grep -q "^${line2}$" || valid=false;
tail -n +$(($offset + 3)) $1 | head -n 1 | grep -q "^${line3}$" || valid=false;
if [[ $valid != true ]]; then
echo "* Invalid copyright header: ${file}"; \
return 1;
fi
}
main() {
if [[ $# -eq 0 ]]; then
usage
fi
local error=false
for file in $@; do
check $file
if [[ $? -ne true ]]; then
error=true
fi
done;
if [[ $error = true ]]; then
exit 1;
fi
}
main "$@"