mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-29 12:13:01 +02:00
Actually a part of statd, but had to make a separarate package to get it to work. Statd helper-scripts are now pre-compiled instead of doing it in runtime. Fixes #379
46 lines
1.2 KiB
Bash
Executable File
46 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
SCRIPT_PATH="$(dirname "$(readlink -f "$0")")"
|
|
ROOT_PATH="$SCRIPT_PATH/../../../"
|
|
|
|
YANGER_TOOL="$ROOT_PATH/src/statd/python/yanger/yanger.py"
|
|
|
|
INTERFACES="br0 br1 e0 e1 e2 e3 e4"
|
|
|
|
INTERFACE_OUTPUT_FILE="$(mktemp)"
|
|
INTERFACES_OUTPUT_FILE="$(mktemp)"
|
|
ROUTES_OUTPUT_FILE="$(mktemp)"
|
|
cleanup() {
|
|
rm -f "$INTERFACE_OUTPUT_FILE"
|
|
rm -f "$ROUTES_OUTPUT_FILE"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
if [ ! -e "$YANGER_TOOL" ]; then
|
|
echo "Error, yanger tool not found"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
for iface in $INTERFACES; do
|
|
if ! "$YANGER_TOOL" "ietf-interfaces" \
|
|
-t "$SCRIPT_PATH/system-output/" \
|
|
-p "$iface" >> "$INTERFACE_OUTPUT_FILE"; then
|
|
echo "Error, running yanger for interface $iface" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
if ! jq -s 'reduce .[] as $item
|
|
({}; .["ietf-interfaces:interfaces"].interface +=
|
|
$item["ietf-interfaces:interfaces"].interface)' \
|
|
"$INTERFACE_OUTPUT_FILE" >> $INTERFACES_OUTPUT_FILE; then
|
|
echo "Error, merging yanger output data" >&2
|
|
exit 1
|
|
fi
|
|
|
|
$YANGER_TOOL "ietf-routing" -t "$SCRIPT_PATH/system-output/" > "$ROUTES_OUTPUT_FILE"
|
|
|
|
# Merge all module files
|
|
jq -s '.[0] * .[1]' $ROUTES_OUTPUT_FILE $INTERFACES_OUTPUT_FILE
|