#!/bin/bash
set -e

SERVER_HOST="openport.pw"
SERVER_URL="https://${SERVER_HOST}"
INSTALL_DIR="$HOME/.openport/bin"

mkdir -p "$INSTALL_DIR"

# Stop any running instances to prevent file lock
pkill -9 -x rathole 2>/dev/null || true

echo "Downloading openport..."
TMP_CLI=$(mktemp)
curl -sSL "$SERVER_URL/openport" -o "$TMP_CLI"
chmod +x "$TMP_CLI"
mv -f "$TMP_CLI" "$INSTALL_DIR/openport"

echo "Downloading rathole core..."
TMP_CORE=$(mktemp)
curl -sSL "$SERVER_URL/client/rathole-linux" -o "$TMP_CORE"
chmod +x "$TMP_CORE"
mv -f "$TMP_CORE" "$INSTALL_DIR/rathole"

# Link to common user bin directories
mkdir -p "$HOME/.local/bin" "$HOME/bin" 2>/dev/null || true
ln -sf "$INSTALL_DIR/openport" "$HOME/.local/bin/openport" 2>/dev/null || true
ln -sf "$INSTALL_DIR/rathole" "$HOME/.local/bin/rathole" 2>/dev/null || true
ln -sf "$INSTALL_DIR/openport" "$HOME/bin/openport" 2>/dev/null || true
ln -sf "$INSTALL_DIR/rathole" "$HOME/bin/rathole" 2>/dev/null || true

if [ -w "/usr/local/bin" ]; then
    ln -sf "$INSTALL_DIR/openport" /usr/local/bin/openport
    ln -sf "$INSTALL_DIR/rathole" /usr/local/bin/rathole
elif command -v sudo >/dev/null 2>&1 && sudo -n true 2>/dev/null; then
    sudo ln -sf "$INSTALL_DIR/openport" /usr/local/bin/openport 2>/dev/null || true
    sudo ln -sf "$INSTALL_DIR/rathole" /usr/local/bin/rathole 2>/dev/null || true
fi

for RC in "$HOME/.bashrc" "$HOME/.zshrc" "$HOME/.profile"; do
    if [ -f "$RC" ]; then
        if ! grep -q "openport/bin" "$RC"; then
            echo 'export PATH="$HOME/.openport/bin:$PATH"' >> "$RC"
        fi
    fi
done

echo ""
echo "OpenPort installed successfully."
echo "To enable it in your current terminal session, run:"
echo "  source ~/.bashrc"
echo ""
echo "Then start with:"
echo "  openport 8080"
