#!/bin/sh
set -u
BIN=/tmp/ikcli-static
CIDR=198.18.77.0/24
DEST=198.18.77.0
GW=200.180.164.145
IFACE=wan1
TAG=ikcli-test
id=
cleanup() {
  [ -n "${id:-}" ] && printf 'routing static delete --id %s --yes\nexit\n' "$id" | "$BIN" >/dev/null 2>&1 || true
}
trap cleanup EXIT INT TERM
/usr/ikuai/function/func_api.sh static_rt show | grep -q '"tagname":"ikcli-test"' && { echo PREEXISTING_TEST_ROUTE; exit 20; }
out=$(printf 'routing static add --destination %s --gateway %s --interface %s --comment %s --yes\nexit\n' "$CIDR" "$GW" "$IFACE" "$TAG" | "$BIN")
printf '%s\n' "$out"
id=$(printf '%s\n' "$out" | sed -n 's/.*Success: static route id=\([0-9][0-9]*\).*/\1/p' | tail -n 1)
[ -n "$id" ] || { echo ADD_SUCCESS_ID_MISSING; exit 21; }
echo "ADDED_ID=$id"
/usr/ikuai/function/func_api.sh static_rt show | grep -q '"tagname":"ikcli-test"' || { echo API_REREAD_FAILED; exit 22; }
ip route show "$CIDR" | grep -q "$DEST" || { echo KERNEL_ROUTE_MISSING; exit 23; }
out=$(printf 'routing static delete --id %s --yes\nexit\n' "$id" | "$BIN")
printf '%s\n' "$out"
printf '%s\n' "$out" | grep -q "Success: deleted static route id=$id" || { echo DELETE_SUCCESS_MISSING; exit 24; }
id=
/usr/ikuai/function/func_api.sh static_rt show | grep -q '"tagname":"ikcli-test"' && { echo API_ROUTE_STILL_PRESENT; exit 25; }
ip route show "$CIDR" | grep -q "$DEST" && { echo KERNEL_ROUTE_STILL_PRESENT; exit 26; }
trap - EXIT INT TERM
echo __STATIC_CYCLE_OK__
