dotfiles

Repositório dotfiles
git clone git://git.sivaldodavi.com/dotfiles.git
Log | Files | Refs | README

commit d1eaa8a3188f17d8cb60affa9ec328a065c362fc
parent c01569e1565ddfc7c394ada6a61e73be4bf5629c
Author: Sivaldo <gxixtx@xsxixvxaxlxdxoxdxaxvxix.xcxoxm>
Date:   Tue, 30 Jun 2026 21:16:49 -0300

feat(kindle): implementar suporte a multiplas sub-redes e descoberta interativa de IP

Diffstat:
M.local/bin/kindle | 48+++++++++++++++++++++++++++++++++++++++---------
1 file changed, 39 insertions(+), 9 deletions(-)

diff --git a/.local/bin/kindle b/.local/bin/kindle @@ -2,7 +2,11 @@ set -eu -KINDLE_NET="10.0.0" +# --- CONFIGURAÇÕES DE SUB-REDE --- +KINDLE_NET_1="10.0.0" +KINDLE_NET_2="192.168.1" +# --------------------------------- + KINDLE_PORT="2222" KINDLE_USER="root" KINDLE_REMOTE_PATH="/" @@ -25,7 +29,6 @@ MY_UID=$(id -u) MY_GID=$(id -g) check_deps() { - # Mantém apenas sshfs e fuse, ignorando openssh e nc MISSING="" command -v sshfs >/dev/null 2>&1 || MISSING="$MISSING sshfs" apk info -e fuse >/dev/null 2>&1 || MISSING="$MISSING fuse" @@ -68,6 +71,38 @@ do_umount() { fi } +discover_ip() { + printf "[*] Últimos dígitos do IP do Kindle (ex: 108): " + read -r LAST + + if [ -z "$LAST" ]; then + die "Os dígitos do IP não podem ser vazios." + fi + + # Monta os dois IPs possíveis baseados no que você digitou + TRY_IP_1="${KINDLE_NET_1}.${LAST}" + TRY_IP_2="${KINDLE_NET_2}.${LAST}" + + # 1. Testa a primeira sub-rede + log "Verificando conectividade com Opção 1 (${TRY_IP_1}:${KINDLE_PORT})..." + if nc -z -w 2 "$TRY_IP_1" "$KINDLE_PORT" >/dev/null 2>&1; then + KINDLE_IP="$TRY_IP_1" + return 0 + fi + + # 2. Testa a segunda sub-rede + log "Opção 1 offline. Verificando Opção 2 (${TRY_IP_2}:${KINDLE_PORT})..." + if nc -z -w 2 "$TRY_IP_2" "$KINDLE_PORT" >/dev/null 2>&1; then + KINDLE_IP="$TRY_IP_2" + return 0 + fi + + # 3. Se nenhum responder, avisa mas tenta o primeiro mesmo assim (estilo o script original) + warn "Nenhuma das sub-redes respondeu na porta ${KINDLE_PORT}." + warn "Tentando forçar a montagem na Opção 1: ${TRY_IP_1}..." + KINDLE_IP="$TRY_IP_1" +} + do_mount() { setup_fuse mkdir -p "$MOUNT_POINT" @@ -77,13 +112,8 @@ do_mount() { exit 0 fi - printf "[*] Últimos dígitos do IP do Kindle (ex: 108): " - read -r LAST - KINDLE_IP="${KINDLE_NET}.${LAST}" - - log "Verificando conectividade com ${KINDLE_IP}:${KINDLE_PORT}..." - nc -z -w 3 "$KINDLE_IP" "$KINDLE_PORT" >/dev/null 2>&1 \ - || warn "Aviso: 'nc' falhou ou não existe, tentando montar mesmo assim..." + KINDLE_IP="" + discover_ip SSH_OPTS="" if [ -f "$SSH_KEY" ]; then