#!/bin/bash # SPDX-License-Identifier: LGPL-3.0-or-later # See Notices.txt for copyright information set -e function fail() { local error="$1" echo "error: $error" >&2 exit 1 } function fail_file() { local file="$1" line="$2" error="$3" fail "$file:$((line + 1)): $error" } function check_file() { local file="$1" regexes=("${@:2}") local lines mapfile -t lines < "$file" local line for line in "${!regexes[@]}"; do eval '[[ "${lines[i]}" =~ '"${regexes[i]}"' ]]' || fail_file "$file" "$line" "doesn't match regex: ${regexes[i]}" done } POUND_HEADER=('^"# SPDX-License-Identifier: LGPL-3.0-or-later"$' '^"# See Notices.txt for copyright information"$') SLASH_HEADER=('^"// SPDX-License-Identifier: LGPL-3.0-or-later"$' '^"// See Notices.txt for copyright information"$') MD_HEADER=('^"