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:
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