41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
set -euo pipefail
|
|
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
|
cd "$root"
|
|
|
|
source_root=third_party/go-webauthn
|
|
embedded_root=internal/webauthnvendored
|
|
derived=$(mktemp -d)
|
|
trap 'rm -rf "$derived"' EXIT
|
|
|
|
packages=(
|
|
metadata
|
|
protocol
|
|
protocol/webauthncbor
|
|
protocol/webauthncose
|
|
webauthn
|
|
)
|
|
|
|
install -D -m 0644 "$source_root/LICENSE" "$derived/LICENSE"
|
|
for package in "${packages[@]}"; do
|
|
while IFS= read -r source; do
|
|
relative=${source#"$source_root"/}
|
|
install -D -m 0644 "$source" "$derived/$relative"
|
|
done < <(find "$source_root/$package" -maxdepth 1 -type f -name '*.go' ! -name '*_test.go' | sort)
|
|
done
|
|
|
|
while IFS= read -r source; do
|
|
sed -i \
|
|
's#github.com/go-webauthn/webauthn#gamertan.com/web/internal/webauthnvendored#g' \
|
|
"$source"
|
|
done < <(find "$derived" -type f -name '*.go' | sort)
|
|
|
|
cmp -s LICENSES/BSD-3-Clause-go-webauthn.txt "$embedded_root/LICENSE"
|
|
if ! diff -ru --no-dereference "$derived" "$embedded_root"; then
|
|
echo 'compiled WebAuthn verifier differs from its audited mechanical derivation' >&2
|
|
exit 1
|
|
fi
|
|
|
|
test "$(find "$embedded_root" -type f | wc -l)" -eq 57
|