26 lines
618 B
Plaintext
26 lines
618 B
Plaintext
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
wait_wg() {
|
|
local c="$1"
|
|
for i in {1..20}; do
|
|
if docker exec "$c" ip link show awg0 >/dev/null 2>&1; then
|
|
return 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
return 1
|
|
}
|
|
|
|
docker events --filter event=start --format '{{.Actor.Attributes.name}}' | while read name; do
|
|
if [[ "$name" == "amnezia-awg2" || "$name" == "amnezia-awg" ]]; then
|
|
echo "[watcher] container started: $name, waiting wg..."
|
|
if wait_wg "$name"; then
|
|
echo "[watcher] wg ready, applying limits"
|
|
WG_IF=awg0 /opt/amnezia/limit_peers.sh
|
|
else
|
|
echo "[watcher] wg not appeared, skip"
|
|
fi
|
|
fi
|
|
done
|