55 lines
1.4 KiB
Bash
55 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
OUT_PATH="${1:-}"
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage: scripts/00_2_generate_ccr.sh OUT.ccr
|
|
|
|
Generate a small deterministic CCR snapshot for pre-check.
|
|
This script writes a fixed base64-encoded CCR fixture and does not require Python.
|
|
The generated snapshot contains:
|
|
- VRP: 10.0.0.0/24 maxLen 24 AS65001
|
|
- VRP: 10.0.1.0/24 maxLen 24 AS65003
|
|
- VRP: 2001:db8:1::/48 maxLen 48 AS65002
|
|
- ASPA: customer AS65010 providers AS65011, AS65012, AS65013
|
|
- ASPA: customer AS65020 provider AS65021
|
|
EOF
|
|
}
|
|
|
|
die() {
|
|
printf '[00_2_generate_ccr] ERROR: %s\n' "$*" >&2
|
|
exit 1
|
|
}
|
|
|
|
if [ "${OUT_PATH}" = "-h" ] || [ "${OUT_PATH}" = "--help" ]; then
|
|
usage
|
|
exit 0
|
|
fi
|
|
|
|
[ -n "${OUT_PATH}" ] || die "missing OUT.ccr"
|
|
mkdir -p "$(dirname "${OUT_PATH}")"
|
|
|
|
decode_base64() {
|
|
if command -v base64 >/dev/null 2>&1; then
|
|
base64 -d
|
|
return
|
|
fi
|
|
|
|
if command -v openssl >/dev/null 2>&1; then
|
|
openssl base64 -d
|
|
return
|
|
fi
|
|
|
|
die "base64 or openssl command is required to write CCR fixture"
|
|
}
|
|
|
|
cat <<'EOF' | decode_base64 >"${OUT_PATH}"
|
|
MIIBAwYLKoZIhvcNAQkQATaggfMwgfACAQAwDQYJYIZIAWUDBAIBBQAYDzIwMjYwNDAzMDAwMjAx
|
|
WqJ9MHswVzAaAgMA/ekwEzARBAIAATALMAkDBAAKAAACARgwGgIDAP3rMBMwEQQCAAEwCzAJAwQA
|
|
CgABAgEYMB0CAwD96jAWMBQEAgACMA4wDAMHACABDbgAAQIBMAQgsUgCHfy5AJcFp5RymOD0HuGO
|
|
wfhoWpll90ugYECGQPSjTDBKMCYwFgIDAP3yMA8CAwD98wIDAP30AgMA/fUwDAIDAP38MAUCAwD9
|
|
/QQgRPxVPOOUsUuuV4tZ8BG5PHNtKiaEr23Ird+yNxlWJ+w=
|
|
EOF
|