76 lines
2.7 KiB
Bash
Executable file
76 lines
2.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
MODE=fast
|
|
INTERACTIVE=0
|
|
KEEP=0
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
full) MODE=full ;;
|
|
fast) MODE=fast ;;
|
|
firewall) MODE=firewall ;;
|
|
nat) MODE=nat ;;
|
|
multi) MODE=multi ;;
|
|
scale) MODE=scale ;;
|
|
negative) MODE=negative ;;
|
|
keys) MODE=keys ;;
|
|
restart) MODE=restart ;;
|
|
controlplane) MODE=controlplane ;;
|
|
controlplane-ha) MODE=controlplane-ha ;;
|
|
relay-failover) MODE=relay-failover ;;
|
|
dns) MODE=dns ;;
|
|
ipv6) MODE=ipv6 ;;
|
|
userspace) MODE=userspace ;;
|
|
--interactive) INTERACTIVE=1 ;;
|
|
--keep) KEEP=1 ;;
|
|
esac
|
|
done
|
|
|
|
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
|
cd "$ROOT_DIR"
|
|
|
|
nix build .#packages.x86_64-linux.lightscale-server
|
|
nix build .#packages.x86_64-linux.lightscale-client
|
|
|
|
OUT_LINK="$ROOT_DIR/lab/driver-$MODE"
|
|
if [[ "$MODE" == "full" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-5.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "nat" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-nat.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "multi" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-multi.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "scale" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-scale.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "negative" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-negative.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "keys" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-keys.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "restart" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-restart.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "controlplane" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-controlplane-restart.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "controlplane-ha" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-controlplane-ha.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "relay-failover" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-relay-failover.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "dns" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-dns.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "ipv6" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-ipv6.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "userspace" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-userspace.driver --out-link "$OUT_LINK"
|
|
elif [[ "$MODE" == "firewall" ]]; then
|
|
nix build .#nixosTests.lightscale-lab-firewall.driver --out-link "$OUT_LINK"
|
|
else
|
|
nix build .#nixosTests.lightscale-lab.driver --out-link "$OUT_LINK"
|
|
fi
|
|
|
|
DRIVER_ARGS=()
|
|
if [[ "$INTERACTIVE" == "1" ]]; then
|
|
DRIVER_ARGS+=("--interactive")
|
|
fi
|
|
if [[ "$KEEP" == "1" ]]; then
|
|
DRIVER_ARGS+=("--keep-vm-state")
|
|
fi
|
|
|
|
exec "$OUT_LINK/bin/nixos-test-driver" "${DRIVER_ARGS[@]}"
|