61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
|
|
#!/data/data/com.termux/files/usr/bin/bash
|
||
|
|
# install.sh - Install mdns-termux scripts to ~/.local/bin
|
||
|
|
# Usage: bash install.sh [--dry-run]
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
DRY_RUN=0
|
||
|
|
[[ "${1:-}" == "--dry-run" ]] && DRY_RUN=1
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
|
|
BIN_DIR="$HOME/.local/bin"
|
||
|
|
|
||
|
|
run() {
|
||
|
|
if [[ $DRY_RUN -eq 1 ]]; then
|
||
|
|
echo "[dry-run] $*"
|
||
|
|
else
|
||
|
|
eval "$@"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
step() { echo ""; echo ">>> Step $1: $2"; }
|
||
|
|
|
||
|
|
# 1. Verify Termux
|
||
|
|
step 1 "Verifying Termux environment..."
|
||
|
|
if [[ -z "${PREFIX:-}" || "$PREFIX" != *"com.termux"* ]]; then
|
||
|
|
echo "ERROR: This installer targets Termux. \$PREFIX not set as expected." >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo " Termux detected: $PREFIX"
|
||
|
|
|
||
|
|
# 2. Base packages
|
||
|
|
step 2 "Installing required packages (pkg + pip)..."
|
||
|
|
run "pkg install -y python proot"
|
||
|
|
run "pip install --upgrade zeroconf"
|
||
|
|
|
||
|
|
# 3. Copy scripts
|
||
|
|
step 3 "Installing scripts to $BIN_DIR..."
|
||
|
|
run "mkdir -p '$BIN_DIR'"
|
||
|
|
for script in mdns-resolve mdns-publish.py ssh-mdns-proxy ssh-fallback resolve; do
|
||
|
|
run "cp '$SCRIPT_DIR/bin/$script' '$BIN_DIR/$script'"
|
||
|
|
run "chmod +x '$BIN_DIR/$script'"
|
||
|
|
done
|
||
|
|
|
||
|
|
# 4. Reminders
|
||
|
|
step 4 "Manual steps remaining:"
|
||
|
|
cat <<EOF
|
||
|
|
|
||
|
|
a) Append aliases to ~/.bashrc:
|
||
|
|
cat $SCRIPT_DIR/config/bashrc.snippet >> ~/.bashrc
|
||
|
|
Then edit TAILSCALE_DOMAIN inside your ~/.bashrc.
|
||
|
|
|
||
|
|
b) (Optional) Merge SSH config for .local + short-name resolution:
|
||
|
|
cat $SCRIPT_DIR/config/ssh_config.example >> ~/.ssh/config
|
||
|
|
Adjust User and hostnames.
|
||
|
|
|
||
|
|
c) Test:
|
||
|
|
resolve <hostname>
|
||
|
|
pingr <hostname>
|
||
|
|
|
||
|
|
EOF
|
||
|
|
echo "Done."
|