termux-connecting 1.1.13 → 1.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/termux-connect-pc +272 -76
- package/bin/termux-connecting +3 -3
- package/package.json +1 -1
package/bin/termux-connect-pc
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
-
VERSION="1.1.
|
|
4
|
+
VERSION="1.1.12"
|
|
5
5
|
CONFIG_DIR="$HOME/.config/termux-connecting"
|
|
6
6
|
CONFIG_FILE="$CONFIG_DIR/config"
|
|
7
|
+
DEVICES_DIR="$CONFIG_DIR/devices"
|
|
8
|
+
ACTIVE_DEVICE=""
|
|
7
9
|
SSH_PORT=8022
|
|
8
10
|
SSH_KEY="$HOME/.ssh/id_ed25519"
|
|
9
11
|
|
|
@@ -20,21 +22,46 @@ prompt() {
|
|
|
20
22
|
echo "${val:-$default}"
|
|
21
23
|
}
|
|
22
24
|
|
|
25
|
+
load_active() {
|
|
26
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
27
|
+
ACTIVE_DEVICE=$(cat "$CONFIG_FILE")
|
|
28
|
+
fi
|
|
29
|
+
}
|
|
30
|
+
|
|
23
31
|
load_config() {
|
|
24
|
-
|
|
32
|
+
local name="${1:-$ACTIVE_DEVICE}"
|
|
33
|
+
[ -z "$name" ] && return 1
|
|
34
|
+
local file="$DEVICES_DIR/$name"
|
|
35
|
+
[ -f "$file" ] && source "$file" || return 1
|
|
25
36
|
}
|
|
26
37
|
|
|
27
38
|
save_config() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
local name="${1:-$ACTIVE_DEVICE}"
|
|
40
|
+
[ -z "$name" ] && return 1
|
|
41
|
+
mkdir -p "$DEVICES_DIR"
|
|
42
|
+
cat > "$DEVICES_DIR/$name" << EOF
|
|
43
|
+
HOST_ALIAS="$name"
|
|
31
44
|
SSH_USER="$SSH_USER"
|
|
32
45
|
SSH_HOST="$SSH_HOST"
|
|
33
46
|
SSH_PORT=$SSH_PORT
|
|
34
47
|
TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN"
|
|
35
48
|
TELEGRAM_CHAT_ID="$TELEGRAM_CHAT_ID"
|
|
36
49
|
EOF
|
|
37
|
-
chmod 600 "$
|
|
50
|
+
chmod 600 "$DEVICES_DIR/$name"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
set_active() {
|
|
54
|
+
local name="$1"
|
|
55
|
+
mkdir -p "$CONFIG_DIR"
|
|
56
|
+
echo "$name" > "$CONFIG_FILE"
|
|
57
|
+
ACTIVE_DEVICE="$name"
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
list_devices() {
|
|
61
|
+
mkdir -p "$DEVICES_DIR"
|
|
62
|
+
for f in "$DEVICES_DIR"/*; do
|
|
63
|
+
[ -f "$f" ] && basename "$f"
|
|
64
|
+
done
|
|
38
65
|
}
|
|
39
66
|
|
|
40
67
|
telegram_alert() {
|
|
@@ -49,66 +76,152 @@ telegram_alert() {
|
|
|
49
76
|
|
|
50
77
|
# ─── COMMAND: connection ──────────────────────────────────────
|
|
51
78
|
cmd_connection() {
|
|
52
|
-
|
|
79
|
+
local new_name="${1:-}"
|
|
80
|
+
load_active
|
|
81
|
+
|
|
82
|
+
if [ -n "$new_name" ]; then
|
|
83
|
+
HOST_ALIAS="$new_name"
|
|
84
|
+
fi
|
|
85
|
+
|
|
53
86
|
title "TERMUX CONNECT — Connection Setup"
|
|
87
|
+
echo "Saya akan bantu kamu menghubungkan PC ini ke Termux di HP."
|
|
88
|
+
echo ""
|
|
54
89
|
|
|
55
|
-
|
|
56
|
-
if [
|
|
57
|
-
|
|
58
|
-
echo "
|
|
59
|
-
|
|
90
|
+
# ── Dialog: device baru atau edit existing ──
|
|
91
|
+
if [ -z "$new_name" ] && [ -n "$ACTIVE_DEVICE" ]; then
|
|
92
|
+
echo " Saat ini device aktif: $ACTIVE_DEVICE"
|
|
93
|
+
echo -n " ➤ Setup device baru? [y/N]: "
|
|
94
|
+
read -r new_dev
|
|
95
|
+
if [[ "$new_dev" =~ ^[Yy]$ ]]; then
|
|
96
|
+
echo ""
|
|
97
|
+
echo " Oke, kita akan setup HP lain."
|
|
98
|
+
new_name=$(prompt " ➤ Beri nama device ini" "")
|
|
99
|
+
HOST_ALIAS="$new_name"
|
|
100
|
+
else
|
|
101
|
+
load_config || true
|
|
102
|
+
HOST_ALIAS="${ACTIVE_DEVICE}"
|
|
103
|
+
fi
|
|
60
104
|
fi
|
|
61
105
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
106
|
+
# ── Dialog: nama device ──
|
|
107
|
+
if [ -z "$HOST_ALIAS" ]; then
|
|
108
|
+
echo ""
|
|
109
|
+
echo " Beri nama untuk HP ini, misal 'hp-kantor' atau 'hp-rumah'."
|
|
110
|
+
HOST_ALIAS=$(prompt " ➤ Nama device" "termux-a8star")
|
|
111
|
+
fi
|
|
65
112
|
|
|
113
|
+
# ── Dialog: username ──
|
|
114
|
+
echo ""
|
|
115
|
+
echo " Sekarang kita perlu data login SSH."
|
|
116
|
+
echo " Username bisa dicek di Termux dengan perintah: whoami"
|
|
117
|
+
SSH_USER=$(prompt " ➤ Username" "${SSH_USER:-u0_a237}")
|
|
118
|
+
|
|
119
|
+
# ── Dialog: IP address ──
|
|
120
|
+
echo ""
|
|
121
|
+
echo " IP Address bisa dicek di Termux dengan: ip a | grep inet"
|
|
122
|
+
echo " Pastikan HP dan PC terhubung ke WiFi yang SAMA."
|
|
123
|
+
SSH_HOST=$(prompt " ➤ IP Address" "${SSH_HOST:-192.168.1.8}")
|
|
124
|
+
|
|
125
|
+
# ── Dialog: Port ──
|
|
126
|
+
echo ""
|
|
127
|
+
echo -n " ➤ Port SSH [8022]: "; read -r port
|
|
128
|
+
SSH_PORT="${port:-8022}"
|
|
129
|
+
|
|
130
|
+
# ── Konfirmasi ──
|
|
131
|
+
echo ""
|
|
132
|
+
echo " ┌──────────────────────────────────────┐"
|
|
133
|
+
echo " │ Device : $HOST_ALIAS"
|
|
134
|
+
echo " │ Login : ${SSH_USER}@${SSH_HOST}:${SSH_PORT}"
|
|
135
|
+
echo " └──────────────────────────────────────┘"
|
|
136
|
+
echo ""
|
|
137
|
+
echo -n " ➤ Lanjutkan koneksi? [Y/n]: "
|
|
138
|
+
read -r proceed
|
|
139
|
+
if [[ -n "$proceed" && ! "$proceed" =~ ^[Yy]$ ]]; then
|
|
140
|
+
echo " Baik, batalkan. Jalankan lagi saat siap."
|
|
141
|
+
return
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# ── Cek Konektifitas ──
|
|
66
145
|
title "1. Cek Konektifitas"
|
|
67
|
-
echo "Mencoba ke ${SSH_USER}@${SSH_HOST}:${SSH_PORT}..."
|
|
146
|
+
echo " Mencoba koneksi ke ${SSH_USER}@${SSH_HOST}:${SSH_PORT}..."
|
|
147
|
+
echo ""
|
|
68
148
|
|
|
69
149
|
local connected=false
|
|
150
|
+
|
|
151
|
+
# Key-based
|
|
70
152
|
if timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
71
153
|
info "Koneksi berhasil (key-based)"
|
|
72
154
|
connected=true
|
|
73
|
-
|
|
155
|
+
# Password via sshpass
|
|
156
|
+
elif command -v sshpass >/dev/null; then
|
|
157
|
+
echo " SSH key tidak dikenali. Coba dengan password..."
|
|
74
158
|
local pass
|
|
75
|
-
pass=$(prompt "Password SSH" "")
|
|
159
|
+
pass=$(prompt " ➤ Password SSH" "")
|
|
76
160
|
if timeout 10 sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
77
161
|
info "Koneksi berhasil (password)"
|
|
78
162
|
connected=true
|
|
79
163
|
fi
|
|
164
|
+
# Manual
|
|
80
165
|
else
|
|
81
166
|
echo ""
|
|
82
|
-
warn "sshpass tidak terinstall.
|
|
83
|
-
echo
|
|
167
|
+
warn " sshpass tidak terinstall."
|
|
168
|
+
echo " Silakan konek manual dari terminal lain:"
|
|
169
|
+
echo " ssh -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST}"
|
|
170
|
+
echo ""
|
|
171
|
+
echo -n " ➤ Setelah berhasil, tekan enter untuk lanjut..."; read -r
|
|
84
172
|
if timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
85
173
|
connected=true
|
|
86
174
|
fi
|
|
87
175
|
fi
|
|
88
176
|
|
|
177
|
+
# ── Gagal total ──
|
|
89
178
|
if ! $connected; then
|
|
90
|
-
error "
|
|
91
|
-
echo "
|
|
92
|
-
|
|
179
|
+
error "Gagal terhubung ke ${SSH_USER}@${SSH_HOST}:${SSH_PORT}"
|
|
180
|
+
echo ""
|
|
181
|
+
echo " Pastikan:"
|
|
182
|
+
echo " 1. HP sudah menjalankan: sshd (di Termux)"
|
|
183
|
+
echo " 2. HP dan PC dalam jaringan WiFi yang SAMA"
|
|
184
|
+
echo " 3. IP dan username yang dimasukkan benar"
|
|
185
|
+
echo ""
|
|
186
|
+
echo " Coba lagi: termux-connect-pc connection"
|
|
187
|
+
return
|
|
93
188
|
fi
|
|
94
189
|
|
|
95
|
-
# SSH key
|
|
190
|
+
# ── Setup SSH key ──
|
|
191
|
+
title "2. Setup SSH Key (biar tanpa password)"
|
|
192
|
+
echo " Dengan SSH key, kamu tidak perlu input password setiap kali konek."
|
|
193
|
+
echo ""
|
|
194
|
+
|
|
96
195
|
if [ ! -f "$SSH_KEY" ]; then
|
|
97
|
-
echo ""
|
|
98
|
-
echo -n "Buat SSH key biar tanpa password? [Y/n]: "
|
|
196
|
+
echo -n " ➤ Buat SSH key sekarang? [Y/n]: "
|
|
99
197
|
read -r mk
|
|
100
198
|
if [[ -z "$mk" || "$mk" =~ ^[Yy]$ ]]; then
|
|
199
|
+
echo " Membuat SSH key..."
|
|
101
200
|
ssh-keygen -t ed25519 -f "$SSH_KEY" -N "" -C "termux-connect"
|
|
201
|
+
info "SSH key dibuat: $SSH_KEY"
|
|
102
202
|
fi
|
|
203
|
+
else
|
|
204
|
+
info "SSH key sudah ada: $SSH_KEY"
|
|
103
205
|
fi
|
|
206
|
+
|
|
104
207
|
if [ -f "$SSH_KEY" ]; then
|
|
105
|
-
|
|
106
|
-
|
|
208
|
+
echo ""
|
|
209
|
+
echo " Meng-copy public key ke HP..."
|
|
210
|
+
if timeout 15 ssh-copy-id -o StrictHostKeyChecking=no -o ConnectTimeout=10 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
211
|
+
info "Public key berhasil di-copy ke HP"
|
|
212
|
+
else
|
|
213
|
+
warn "Gagal copy otomatis. Copy manual:"
|
|
214
|
+
echo " ssh-copy-id -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST}"
|
|
215
|
+
fi
|
|
107
216
|
fi
|
|
108
217
|
|
|
109
|
-
# SSH config
|
|
218
|
+
# ── Setup SSH config ──
|
|
219
|
+
title "3. Setup SSH Config"
|
|
220
|
+
echo " Membuat alias '${HOST_ALIAS}' di ~/.ssh/config"
|
|
221
|
+
echo " Nanti cukup: ssh ${HOST_ALIAS}"
|
|
222
|
+
echo ""
|
|
110
223
|
mkdir -p "$HOME/.ssh"
|
|
111
|
-
if ! grep -q "Host $HOST_ALIAS$" "$HOME/.ssh/config"
|
|
224
|
+
if ! grep -q "Host $HOST_ALIAS$" "$HOME/.ssh/config"; then
|
|
112
225
|
cat >> "$HOME/.ssh/config" << EOF
|
|
113
226
|
|
|
114
227
|
Host $HOST_ALIAS
|
|
@@ -119,72 +232,147 @@ Host $HOST_ALIAS
|
|
|
119
232
|
UserKnownHostsFile /dev/null
|
|
120
233
|
EOF
|
|
121
234
|
chmod 600 "$HOME/.ssh/config"
|
|
235
|
+
info "SSH config siap: ssh $HOST_ALIAS"
|
|
236
|
+
else
|
|
237
|
+
info "Host '$HOST_ALIAS' sudah ada di SSH config"
|
|
122
238
|
fi
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
fi
|
|
239
|
+
|
|
240
|
+
# ── Telegram ──
|
|
241
|
+
title "4. Telegram Alert (opsional)"
|
|
242
|
+
echo " Dapat notifikasi saat koneksi ke HP ini putus."
|
|
243
|
+
echo ""
|
|
244
|
+
echo -n " ➤ Setup Telegram? [y/N]: "
|
|
245
|
+
read -r tk
|
|
246
|
+
local tel_setup=false
|
|
247
|
+
if [[ "$tk" =~ ^[Yy]$ ]]; then
|
|
248
|
+
echo ""
|
|
249
|
+
echo " Butuh Bot Token dari @BotFather dan Chat ID kamu."
|
|
250
|
+
TELEGRAM_BOT_TOKEN=$(prompt " ➤ Bot Token" "")
|
|
251
|
+
TELEGRAM_CHAT_ID=$(prompt " ➤ Chat ID (atau @username)" "")
|
|
252
|
+
if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
|
|
253
|
+
tel_setup=true
|
|
139
254
|
else
|
|
140
|
-
|
|
255
|
+
warn "Data tidak lengkap. Telegram bisa diatur nanti."
|
|
141
256
|
fi
|
|
142
257
|
fi
|
|
143
258
|
|
|
144
|
-
|
|
259
|
+
# ── Simpan ──
|
|
260
|
+
save_config "$HOST_ALIAS"
|
|
261
|
+
set_active "$HOST_ALIAS"
|
|
262
|
+
|
|
263
|
+
if $tel_setup; then
|
|
264
|
+
telegram_alert "✅ *termux-connect-pc* — Device ${HOST_ALIAS} siap"
|
|
265
|
+
info "Telegram alert aktif ✅"
|
|
266
|
+
fi
|
|
267
|
+
|
|
268
|
+
echo ""
|
|
269
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
270
|
+
info "Setup selesai!"
|
|
271
|
+
echo ""
|
|
272
|
+
echo " Koneksi: ssh ${HOST_ALIAS}"
|
|
273
|
+
echo " Cek : termux-connect-pc check"
|
|
274
|
+
echo " Device lain: termux-connect-pc connection <nama>"
|
|
275
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
145
276
|
echo ""
|
|
146
|
-
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
# ─── COMMAND: list ────────────────────────────────────────────
|
|
280
|
+
cmd_list() {
|
|
281
|
+
load_active
|
|
282
|
+
title "TERMUX CONNECT — Devices"
|
|
283
|
+
local devices=()
|
|
284
|
+
while IFS= read -r d; do
|
|
285
|
+
devices+=("$d")
|
|
286
|
+
done < <(list_devices)
|
|
287
|
+
|
|
288
|
+
if [ ${#devices[@]} -eq 0 ]; then
|
|
289
|
+
warn "Belum ada device. Tambah: termux-connect-pc connection"
|
|
290
|
+
return
|
|
291
|
+
fi
|
|
292
|
+
|
|
293
|
+
for d in "${devices[@]}"; do
|
|
294
|
+
if [ "$d" = "$ACTIVE_DEVICE" ]; then
|
|
295
|
+
echo -e " ${GREEN}→ $d (aktif)${NC}"
|
|
296
|
+
# tampilkan detail
|
|
297
|
+
SSH_USER=""; SSH_HOST=""
|
|
298
|
+
source "$DEVICES_DIR/$d" || true
|
|
299
|
+
[ -n "$SSH_HOST" ] && echo " $SSH_USER@$SSH_HOST:$SSH_PORT"
|
|
300
|
+
[ -n "$TELEGRAM_BOT_TOKEN" ] && echo " Telegram: aktif"
|
|
301
|
+
else
|
|
302
|
+
echo " $d"
|
|
303
|
+
fi
|
|
304
|
+
done
|
|
305
|
+
echo ""
|
|
306
|
+
echo " Gunakan: termux-connect-pc switch <nama>"
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
# ─── COMMAND: switch ──────────────────────────────────────────
|
|
310
|
+
cmd_switch() {
|
|
311
|
+
local name="$1"
|
|
312
|
+
if [ -z "$name" ]; then
|
|
313
|
+
error "Nama device diperlukan. Lihat: termux-connect-pc list"
|
|
314
|
+
return
|
|
315
|
+
fi
|
|
316
|
+
if [ ! -f "$DEVICES_DIR/$name" ]; then
|
|
317
|
+
error "Device '$name' tidak ditemukan"
|
|
318
|
+
return
|
|
319
|
+
fi
|
|
320
|
+
set_active "$name"
|
|
321
|
+
info "Beralih ke device: $name"
|
|
147
322
|
}
|
|
148
323
|
|
|
149
324
|
# ─── COMMAND: check ───────────────────────────────────────────
|
|
150
325
|
cmd_check() {
|
|
151
|
-
|
|
152
|
-
if [
|
|
153
|
-
warn "Belum ada
|
|
154
|
-
return
|
|
326
|
+
load_active
|
|
327
|
+
if [ -z "$ACTIVE_DEVICE" ] || ! load_config; then
|
|
328
|
+
warn "Belum ada device. Tambah: termux-connect-pc connection"
|
|
329
|
+
return
|
|
155
330
|
fi
|
|
156
331
|
|
|
157
332
|
title "TERMUX CONNECT — Check"
|
|
158
|
-
echo "
|
|
333
|
+
echo "Device: ${ACTIVE_DEVICE} (${SSH_USER}@${SSH_HOST}:${SSH_PORT})"
|
|
159
334
|
echo ""
|
|
160
335
|
|
|
161
|
-
|
|
162
|
-
if timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes "$HOST_ALIAS" "echo connected"; then
|
|
336
|
+
if timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes "$ACTIVE_DEVICE" "echo connected"; then
|
|
163
337
|
info "Koneksi OK"
|
|
164
|
-
|
|
338
|
+
echo ""
|
|
339
|
+
info "Gunakan ssh $ACTIVE_DEVICE untuk koneksi"
|
|
165
340
|
else
|
|
166
341
|
error "Koneksi GAGAL"
|
|
167
|
-
telegram_alert "🚨 *Koneksi Termux PUTUS*%
|
|
342
|
+
telegram_alert "🚨 *Koneksi Termux PUTUS*%0ADevice: ${ACTIVE_DEVICE}%0AHost: ${SSH_USER}@${SSH_HOST}:${SSH_PORT}%0AWaktu: $(date)"
|
|
168
343
|
echo ""
|
|
169
344
|
warn "Notifikasi sudah dikirim ke Telegram admin"
|
|
170
345
|
echo ""
|
|
171
|
-
echo -n "Coba lagi? [y/N]: "
|
|
346
|
+
echo -n "Coba lagi? [y/N]: "
|
|
347
|
+
read -r retry
|
|
172
348
|
if [[ "$retry" =~ ^[Yy]$ ]]; then
|
|
173
349
|
cmd_check
|
|
174
350
|
return
|
|
175
351
|
fi
|
|
176
352
|
fi
|
|
353
|
+
}
|
|
177
354
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
355
|
+
# ─── COMMAND: remove ──────────────────────────────────────────
|
|
356
|
+
cmd_remove() {
|
|
357
|
+
local name="$1"
|
|
358
|
+
if [ -z "$name" ]; then
|
|
359
|
+
error "Nama device diperlukan"
|
|
360
|
+
return
|
|
361
|
+
fi
|
|
362
|
+
if [ ! -f "$DEVICES_DIR/$name" ]; then
|
|
363
|
+
error "Device '$name' tidak ditemukan"
|
|
364
|
+
return
|
|
365
|
+
fi
|
|
366
|
+
rm "$DEVICES_DIR/$name"
|
|
367
|
+
info "Device '$name' dihapus"
|
|
368
|
+
# Hapus dari SSH config
|
|
369
|
+
if [ -f "$HOME/.ssh/config" ]; then
|
|
370
|
+
sed -i '' "/^Host $name\$/,/^$/d" "$HOME/.ssh/config" || true
|
|
371
|
+
fi
|
|
372
|
+
if [ "$ACTIVE_DEVICE" = "$name" ]; then
|
|
373
|
+
rm -f "$CONFIG_FILE"
|
|
374
|
+
ACTIVE_DEVICE=""
|
|
375
|
+
warn "Device aktif dihapus. Set active: termux-connect-pc switch <nama>"
|
|
188
376
|
fi
|
|
189
377
|
}
|
|
190
378
|
|
|
@@ -195,11 +383,15 @@ cmd_help() {
|
|
|
195
383
|
echo "CLI koneksi Termux dari PC/Mac"
|
|
196
384
|
echo ""
|
|
197
385
|
echo "Penggunaan:"
|
|
198
|
-
echo " termux-connect-pc connection
|
|
199
|
-
echo " termux-connect-pc
|
|
200
|
-
echo " termux-connect-pc
|
|
201
|
-
echo " termux-connect-pc
|
|
386
|
+
echo " termux-connect-pc connection [nama] Setup device baru"
|
|
387
|
+
echo " termux-connect-pc list Daftar semua device"
|
|
388
|
+
echo " termux-connect-pc switch <nama> Pilih device aktif"
|
|
389
|
+
echo " termux-connect-pc check Cek koneksi device aktif"
|
|
390
|
+
echo " termux-connect-pc remove <nama> Hapus device"
|
|
391
|
+
echo " termux-connect-pc help Bantuan ini"
|
|
392
|
+
echo " termux-connect-pc version Versi"
|
|
202
393
|
echo ""
|
|
394
|
+
echo "Multi-device: kelola beberapa HP Termux dari satu PC."
|
|
203
395
|
echo "Telegram alert otomatis ke admin saat koneksi putus."
|
|
204
396
|
echo ""
|
|
205
397
|
}
|
|
@@ -212,13 +404,17 @@ cmd_version() {
|
|
|
212
404
|
# ─── MAIN ─────────────────────────────────────────────────────
|
|
213
405
|
main() {
|
|
214
406
|
case "${1:-}" in
|
|
215
|
-
connection) cmd_connection ;;
|
|
407
|
+
connection) cmd_connection "${2:-}" ;;
|
|
408
|
+
list|ls) cmd_list ;;
|
|
409
|
+
switch|use) cmd_switch "${2:-}" ;;
|
|
216
410
|
check) cmd_check ;;
|
|
411
|
+
remove|rm) cmd_remove "${2:-}" ;;
|
|
217
412
|
help|--help|-h) cmd_help ;;
|
|
218
413
|
version|--version|-v) cmd_version ;;
|
|
219
414
|
*)
|
|
220
|
-
|
|
221
|
-
|
|
415
|
+
load_active
|
|
416
|
+
if [ -z "$ACTIVE_DEVICE" ]; then
|
|
417
|
+
echo "Belum ada device. Setup koneksi pertama."
|
|
222
418
|
echo ""
|
|
223
419
|
cmd_connection
|
|
224
420
|
else
|
package/bin/termux-connecting
CHANGED
|
@@ -107,7 +107,7 @@ done
|
|
|
107
107
|
|
|
108
108
|
# ─── 4. Password ───
|
|
109
109
|
title "3. Cek Password (passwd)"
|
|
110
|
-
if [ -f "$HOME/.termux_authinfo" ] || passwd -S
|
|
110
|
+
if [ -f "$HOME/.termux_authinfo" ] || passwd -S | grep -q "P"; then
|
|
111
111
|
info "Password sudah diatur"
|
|
112
112
|
else
|
|
113
113
|
echo " Belum ada password. Setting password diperlukan untuk SSH."
|
|
@@ -136,10 +136,10 @@ if [ -z "$IP" ] && command -v ifconfig >/dev/null; then
|
|
|
136
136
|
IP=$(ifconfig | awk '/inet /{print $2}' | grep -v 127.0.0.1 | head -1)
|
|
137
137
|
fi
|
|
138
138
|
if [ -z "$IP" ] && command -v hostname >/dev/null; then
|
|
139
|
-
IP=$(hostname -I
|
|
139
|
+
IP=$(hostname -I | awk '{print $1}')
|
|
140
140
|
fi
|
|
141
141
|
if [ -z "$IP" ] && [ -d /data/data/com.termux ]; then
|
|
142
|
-
IP=$(ip route get 1.1.1.1
|
|
142
|
+
IP=$(ip route get 1.1.1.1 | awk '{print $7}' | head -1)
|
|
143
143
|
fi
|
|
144
144
|
if [ -z "$IP" ]; then
|
|
145
145
|
IP="(tidak terdeteksi — pastikan WiFi/data aktif)"
|