Compare commits
2
Commits
23910c3393
...
v1.5.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27864fad58 | ||
|
|
dc5e777d07 |
No files matched your search
@@ -11,21 +11,54 @@ list_nums() {
|
|||||||
ls "$dir" 2>/dev/null | sed -n 's/^\([0-9]\{6\}\)_.*\.up\.sql$/\1/p' | sort -u
|
ls "$dir" 2>/dev/null | sed -n 's/^\([0-9]\{6\}\)_.*\.up\.sql$/\1/p' | sort -u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
migration_only_in() {
|
||||||
|
# Prints numbers present in $1 but not in $2 (space-separated lists).
|
||||||
|
haystack="$2 "
|
||||||
|
for n in $1; do
|
||||||
|
case "$haystack" in
|
||||||
|
*" $n "*) ;;
|
||||||
|
*) echo "$n" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
pg_nums="$(list_nums "$PG")"
|
pg_nums="$(list_nums "$PG")"
|
||||||
sql_nums="$(list_nums "$SQL")"
|
sql_nums="$(list_nums "$SQL")"
|
||||||
|
|
||||||
if [ "$pg_nums" != "$sql_nums" ]; then
|
if [ "$pg_nums" != "$sql_nums" ]; then
|
||||||
echo "check-migrations-pair: postgres and sqlite migration numbers differ" >&2
|
echo "check-migrations-pair: postgres and sqlite migration numbers differ" >&2
|
||||||
echo "postgres only:" >&2
|
only_pg="$(migration_only_in "$pg_nums" "$sql_nums")"
|
||||||
comm -23 <(printf '%s\n' "$pg_nums") <(printf '%s\n' "$sql_nums") >&2 || true
|
only_sql="$(migration_only_in "$sql_nums" "$pg_nums")"
|
||||||
echo "sqlite only:" >&2
|
if [ -n "$only_pg" ]; then
|
||||||
comm -13 <(printf '%s\n' "$pg_nums") <(printf '%s\n' "$sql_nums") >&2 || true
|
echo "postgres only:" >&2
|
||||||
|
for n in $only_pg; do
|
||||||
|
echo " $n" >&2
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ -n "$only_sql" ]; then
|
||||||
|
echo "sqlite only:" >&2
|
||||||
|
for n in $only_sql; do
|
||||||
|
echo " $n" >&2
|
||||||
|
done
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for n in $pg_nums; do
|
for n in $pg_nums; do
|
||||||
pg_up="$(ls "$PG"/${n}_*.up.sql 2>/dev/null | head -1)"
|
pg_up=""
|
||||||
sql_up="$(ls "$SQL"/${n}_*.up.sql 2>/dev/null | head -1)"
|
sql_up=""
|
||||||
|
for f in "$PG"/${n}_*.up.sql; do
|
||||||
|
if [ -f "$f" ]; then
|
||||||
|
pg_up="$f"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for f in "$SQL"/${n}_*.up.sql; do
|
||||||
|
if [ -f "$f" ]; then
|
||||||
|
sql_up="$f"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
if [ -z "$pg_up" ] || [ -z "$sql_up" ]; then
|
if [ -z "$pg_up" ] || [ -z "$sql_up" ]; then
|
||||||
echo "check-migrations-pair: missing .up.sql for $n" >&2
|
echo "check-migrations-pair: missing .up.sql for $n" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -50,11 +50,9 @@ export const settingsKnownSchema = z.object({
|
|||||||
bird_router_id: optionalIPv4('router id'),
|
bird_router_id: optionalIPv4('router id'),
|
||||||
bird_local_ipv4: optionalIPv4('local IPv4'),
|
bird_local_ipv4: optionalIPv4('local IPv4'),
|
||||||
bird_local_ipv6: optionalIPv6('local IPv6'),
|
bird_local_ipv6: optionalIPv6('local IPv6'),
|
||||||
bird_local_asn: z
|
bird_local_asn: z.string().refine((v) => v.trim() === '' || /^[1-9]\d*$/.test(v.trim()), {
|
||||||
.string()
|
message: 'ASN должен быть целым числом больше 0'
|
||||||
.refine((v) => v.trim() === '' || /^[1-9]\d*$/.test(v.trim()), {
|
}),
|
||||||
message: 'ASN должен быть целым числом больше 0'
|
|
||||||
}),
|
|
||||||
bird_bgp_source_ipv4: optionalIPv4('BGP source IPv4'),
|
bird_bgp_source_ipv4: optionalIPv4('BGP source IPv4'),
|
||||||
bird_bgp_source_ipv6: optionalIPv6('BGP source IPv6'),
|
bird_bgp_source_ipv6: optionalIPv6('BGP source IPv6'),
|
||||||
revision_retention_minutes: z.string().refine(
|
revision_retention_minutes: z.string().refine(
|
||||||
|
|||||||
Reference in new issue
Block a user