mdns-termux/config/bashrc.snippet

49 lines
2.1 KiB
Plaintext

# === mdns-termux - .bashrc additions ===
# Append these lines to your ~/.bashrc
# Ensure ~/.local/bin is on PATH
export PATH="$HOME/.local/bin:$PATH"
# Your Tailscale tailnet (change to yours). Used as fallback for resolve/sshr.
export TAILSCALE_DOMAIN="tailXXXXXX.ts.net"
# --- mDNS publisher daemon (movil.local + services on the LAN) ---
alias mdns-up='mdns publish --daemon' # start singleton daemon
alias mdns-status='mdns status' # is it running? what does it announce?
alias mdns-down='mdns stop' # graceful goodbye
alias mdns-hosts='mdns sync-hosts' # write discovered hosts into hosts file
# --- Service discovery / cache shortcuts ---
alias mdns-types='mdns browse --list-types'
alias mdns-ssh='mdns browse --type _ssh._tcp.local.'
alias mdns-smb='mdns browse --type _smb._tcp.local.'
alias mdns-http='mdns browse --type _http._tcp.local.'
alias mdns-watch='mdns browse --watch'
alias mdns-cache='mdns cache list'
alias mdns-forget='mdns cache clear'
# --- Generic host resolver (mdns -> stdlib -> Tailscale -> file cache) ---
# Works in any command: ping $(resolve lenovo) / curl "http://$(resolve hp62a)"
alias r='resolve'
pingr() { ping -c 3 "$(resolve "$1")"; }
curlr() { local h="$1"; shift; curl "$@" "http://$(resolve "$h")"; }
whor() { mdns reverse "$1"; } # IP -> hostname (PTR)
# HostKeyAlias reuses the known_hosts entry for the Tailscale FQDN so SSH-by-IP
# does not fail host-key verification.
sshr() {
local h="$1"; shift
local canonical="$h"
# Add your own short-name -> canonical mappings here:
case "$h" in dell) canonical="dell-latitude3400";; lenovo) canonical="lenovo-ideapad";; esac
ssh -o "HostKeyAlias=${canonical}.${TAILSCALE_DOMAIN}" \
"YOUR_USER@$(resolve "$h")" "$@"
}
# --- Auto-start publisher on shell login (optional) ---
# Uncomment if you want movil.local advertised whenever you open a Termux shell.
# Failures land in ~/.cache/mdns.log — do NOT redirect to /dev/null.
#
# mkdir -p ~/.cache
# pgrep -f "mdns-publish" >/dev/null 2>&1 || \
# nohup python ~/.local/bin/mdns-publish.py >>~/.cache/mdns.log 2>&1 & disown