karnel-termux 4.7.7 → 4.8.0
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/README.md +39 -4
- package/karnel/cli/commands/backup.sh +8 -0
- package/karnel/cli/commands/doctor/system.sh +2 -0
- package/karnel/cli/commands/doctor.sh +8 -0
- package/karnel/cli/commands/install.sh +139 -84
- package/karnel/cli/commands/list.sh +32 -0
- package/karnel/cli/commands/open.sh +10 -6
- package/karnel/cli/commands/reinstall.sh +11 -0
- package/karnel/cli/commands/robin.sh +656 -0
- package/karnel/cli/commands/show.sh +1 -0
- package/karnel/cli/commands/start.sh +5 -0
- package/karnel/cli/commands/status.sh +11 -0
- package/karnel/cli/commands/uninstall.sh +9 -0
- package/karnel/cli/commands/update.sh +9 -0
- package/karnel/cli/commands/version.sh +2 -0
- package/karnel/cli/karnel.sh +35 -25
- package/karnel/modules/dev.sh +19 -46
- package/karnel/modules/osint.sh +123 -0
- package/karnel/tools/ai/crush/install.sh +1 -1
- package/karnel/tools/ai/omni-route/install.sh +1 -1
- package/karnel/tools/deploy/railway/install.sh +1 -1
- package/karnel/tools/dev/all.sh +45 -2
- package/karnel/tools/dev/fzf/install.sh +36 -9
- package/karnel/tools/npm/turbopack/install.sh +2 -0
- package/karnel/tools/osint/all.sh +65 -0
- package/karnel/tools/osint/robin/README.md +99 -0
- package/karnel/tools/osint/robin/common.sh +258 -0
- package/karnel/tools/osint/robin/install.sh +548 -0
- package/karnel/tools/osint/robin/requirements-termux.txt +33 -0
- package/karnel/utils/env.sh +16 -2
- package/karnel/utils/tools.sh +9 -2
- package/package.json +6 -1
- package/scripts/check-package.js +45 -0
- package/scripts/completion.bash +8 -3
- package/scripts/completion.zsh +8 -1
- package/karnel/tools/dev/applaunch/__pycache__/applaunch.cpython-314.pyc +0 -0
- package/karnel/tools/dev/fconv/__pycache__/fconv.cpython-314.pyc +0 -0
- package/karnel/tools/dev/filecheck/__pycache__/filecheck.cpython-314.pyc +0 -0
- package/karnel/tools/dev/notes/__pycache__/notes.cpython-314.pyc +0 -0
- package/karnel/tools/dev/passman/__pycache__/passman.cpython-314.pyc +0 -0
- package/karnel/tools/dev/splash/__pycache__/splash.cpython-314.pyc +0 -0
- package/karnel/tools/dev/websites/__pycache__/websites.cpython-314.pyc +0 -0
- package/karnel/tools/games/arcade/__pycache__/arcade.cpython-314.pyc +0 -0
- package/karnel/tools/games/buzz/__pycache__/buzz.cpython-314.pyc +0 -0
- package/karnel/tools/games/ctfgod/__pycache__/ctfgod.cpython-314.pyc +0 -0
- package/karnel/tools/games/detective/__pycache__/detective.cpython-314.pyc +0 -0
- package/karnel/tools/games/pet-friends/__pycache__/pet-friends.cpython-314.pyc +0 -0
- package/karnel/tools/games/tamagotchi/__pycache__/tamagotchi.cpython-314.pyc +0 -0
- package/karnel/tools/games/terminal-arcade/__pycache__/terminal-arcade.cpython-314.pyc +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import "@/utils/log"
|
|
4
4
|
import "@/utils/colors"
|
|
5
|
+
import "@/utils/tools"
|
|
5
6
|
|
|
6
7
|
install_main() {
|
|
7
8
|
|
|
@@ -20,6 +21,7 @@ install_main() {
|
|
|
20
21
|
list_item "editor - Code editor (code-server, neovim, nvchad)"
|
|
21
22
|
list_item "dev - Development tools"
|
|
22
23
|
list_item "npm - Node.js global modules (npm packages)"
|
|
24
|
+
list_item "osint - OSINT tools (Robin — Dark Web + LLM)"
|
|
23
25
|
list_item "shell - ZSH + Oh My Zsh + plugins"
|
|
24
26
|
list_item "ui - Termux UI (font, cursor, extra-keys, banner)"
|
|
25
27
|
list_item "auto - Automation Tools (n8n)"
|
|
@@ -134,6 +136,10 @@ _install_full_module() {
|
|
|
134
136
|
import "@/modules/games"
|
|
135
137
|
install_games
|
|
136
138
|
;;
|
|
139
|
+
osint)
|
|
140
|
+
import "@/modules/osint"
|
|
141
|
+
install_osint
|
|
142
|
+
;;
|
|
137
143
|
*)
|
|
138
144
|
log_warn "Unknown install target: $target"
|
|
139
145
|
echo "Run 'karnel install' to see available targets"
|
|
@@ -152,6 +158,7 @@ _install_specific_tools() {
|
|
|
152
158
|
import "@/tools/ai/all"
|
|
153
159
|
local installed_count=0
|
|
154
160
|
local failed_count=0
|
|
161
|
+
local skipped_count=0
|
|
155
162
|
|
|
156
163
|
# These entries MUST stay in sync with AI_TOOLS_REGISTRY in karnel/tools/ai/all.sh
|
|
157
164
|
# To add a new tool: 1) create install.sh 2) add to AI_TOOLS_REGISTRY 3) add case here
|
|
@@ -201,9 +208,9 @@ _install_specific_tools() {
|
|
|
201
208
|
1)
|
|
202
209
|
((failed_count++))
|
|
203
210
|
;;
|
|
204
|
-
|
|
211
|
+
2)
|
|
205
212
|
# Already installed (skipped)
|
|
206
|
-
((
|
|
213
|
+
((skipped_count++))
|
|
207
214
|
;;
|
|
208
215
|
esac
|
|
209
216
|
else
|
|
@@ -216,6 +223,9 @@ _install_specific_tools() {
|
|
|
216
223
|
if [[ $installed_count -gt 0 ]]; then
|
|
217
224
|
log_success "$installed_count AI tool(s) installed"
|
|
218
225
|
fi
|
|
226
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
227
|
+
log_info "$skipped_count AI tool(s) already installed"
|
|
228
|
+
fi
|
|
219
229
|
if [[ $failed_count -gt 0 ]]; then
|
|
220
230
|
log_warn "$failed_count tool(s) failed to install"
|
|
221
231
|
fi
|
|
@@ -225,28 +235,29 @@ _install_specific_tools() {
|
|
|
225
235
|
import "@/tools/db/all"
|
|
226
236
|
local installed_count=0
|
|
227
237
|
local failed_count=0
|
|
238
|
+
local skipped_count=0
|
|
228
239
|
|
|
229
240
|
for tool in "${tools[@]}"; do
|
|
230
241
|
case "$tool" in
|
|
231
242
|
postgresql)
|
|
232
243
|
install_postgresql
|
|
233
|
-
case $? in 0
|
|
244
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
234
245
|
;;
|
|
235
246
|
mariadb)
|
|
236
247
|
install_mariadb
|
|
237
|
-
case $? in 0
|
|
248
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
238
249
|
;;
|
|
239
250
|
sqlite)
|
|
240
251
|
install_sqlite
|
|
241
|
-
case $? in 0
|
|
252
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
242
253
|
;;
|
|
243
254
|
mongodb)
|
|
244
255
|
install_mongodb
|
|
245
|
-
case $? in 0
|
|
256
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
246
257
|
;;
|
|
247
258
|
redis)
|
|
248
259
|
install_redis
|
|
249
|
-
case $? in 0
|
|
260
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
250
261
|
;;
|
|
251
262
|
*)
|
|
252
263
|
log_warn "Unknown database: --$tool"
|
|
@@ -258,6 +269,9 @@ _install_specific_tools() {
|
|
|
258
269
|
if [[ $installed_count -gt 0 ]]; then
|
|
259
270
|
log_success "$installed_count database(s) installed"
|
|
260
271
|
fi
|
|
272
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
273
|
+
log_info "$skipped_count database(s) already installed"
|
|
274
|
+
fi
|
|
261
275
|
if [[ $failed_count -gt 0 ]]; then
|
|
262
276
|
log_warn "$failed_count database(s) failed to install"
|
|
263
277
|
fi
|
|
@@ -267,136 +281,137 @@ _install_specific_tools() {
|
|
|
267
281
|
import "@/tools/dev/all"
|
|
268
282
|
local installed_count=0
|
|
269
283
|
local failed_count=0
|
|
284
|
+
local skipped_count=0
|
|
270
285
|
|
|
271
286
|
for tool in "${tools[@]}"; do
|
|
272
287
|
case "$tool" in
|
|
273
288
|
gh)
|
|
274
289
|
install_gh
|
|
275
|
-
case $? in 0
|
|
290
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
276
291
|
;;
|
|
277
292
|
wget)
|
|
278
293
|
install_wget
|
|
279
|
-
case $? in 0
|
|
294
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
280
295
|
;;
|
|
281
296
|
curl)
|
|
282
297
|
install_curl
|
|
283
|
-
case $? in 0
|
|
298
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
284
299
|
;;
|
|
285
300
|
lsd)
|
|
286
301
|
install_lsd
|
|
287
|
-
case $? in 0
|
|
302
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
288
303
|
;;
|
|
289
304
|
bat)
|
|
290
305
|
install_bat
|
|
291
|
-
case $? in 0
|
|
306
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
292
307
|
;;
|
|
293
308
|
proot)
|
|
294
309
|
install_proot
|
|
295
|
-
case $? in 0
|
|
310
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
296
311
|
;;
|
|
297
312
|
ncurses)
|
|
298
313
|
install_ncurses
|
|
299
|
-
case $? in 0
|
|
314
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
300
315
|
;;
|
|
301
316
|
tmate)
|
|
302
317
|
install_tmate
|
|
303
|
-
case $? in 0
|
|
318
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
304
319
|
;;
|
|
305
320
|
openssh)
|
|
306
321
|
install_openssh
|
|
307
|
-
case $? in 0
|
|
322
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
308
323
|
;;
|
|
309
324
|
tmux)
|
|
310
325
|
install_tmux
|
|
311
|
-
case $? in 0
|
|
326
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
312
327
|
;;
|
|
313
328
|
cloudflared)
|
|
314
329
|
install_cloudflared
|
|
315
|
-
case $? in 0
|
|
330
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
316
331
|
;;
|
|
317
332
|
translate)
|
|
318
333
|
install_translate
|
|
319
|
-
case $? in 0
|
|
334
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
320
335
|
;;
|
|
321
336
|
html2text)
|
|
322
337
|
install_html2text
|
|
323
|
-
case $? in 0
|
|
338
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
324
339
|
;;
|
|
325
340
|
jq)
|
|
326
341
|
install_jq
|
|
327
|
-
case $? in 0
|
|
342
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
328
343
|
;;
|
|
329
344
|
bc)
|
|
330
345
|
install_bc
|
|
331
|
-
case $? in 0
|
|
346
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
332
347
|
;;
|
|
333
348
|
tree)
|
|
334
349
|
install_tree
|
|
335
|
-
case $? in 0
|
|
350
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
336
351
|
;;
|
|
337
352
|
fzf)
|
|
338
353
|
install_fzf
|
|
339
|
-
case $? in 0
|
|
354
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
340
355
|
;;
|
|
341
356
|
imagemagick)
|
|
342
357
|
install_imagemagick
|
|
343
|
-
case $? in 0
|
|
358
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
344
359
|
;;
|
|
345
360
|
shfmt)
|
|
346
361
|
install_shfmt
|
|
347
|
-
case $? in 0
|
|
362
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
348
363
|
;;
|
|
349
364
|
make)
|
|
350
365
|
install_make
|
|
351
|
-
case $? in 0
|
|
366
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
352
367
|
;;
|
|
353
368
|
udocker)
|
|
354
369
|
install_udocker
|
|
355
|
-
case $? in 0
|
|
370
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
356
371
|
;;
|
|
357
372
|
snyk)
|
|
358
373
|
install_snyk
|
|
359
|
-
case $? in 0
|
|
374
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
360
375
|
;;
|
|
361
376
|
httptmux)
|
|
362
377
|
install_httptmux
|
|
363
|
-
case $? in 0
|
|
378
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
364
379
|
;;
|
|
365
380
|
zork)
|
|
366
381
|
install_zork
|
|
367
|
-
case $? in 0
|
|
382
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
368
383
|
;;
|
|
369
384
|
fconv)
|
|
370
385
|
install_fconv
|
|
371
|
-
case $? in 0
|
|
386
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
372
387
|
;;
|
|
373
388
|
filecheck)
|
|
374
389
|
install_filecheck
|
|
375
|
-
case $? in 0
|
|
390
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
376
391
|
;;
|
|
377
392
|
websites)
|
|
378
393
|
install_websites
|
|
379
|
-
case $? in 0
|
|
394
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
380
395
|
;;
|
|
381
396
|
notes)
|
|
382
397
|
install_notes
|
|
383
|
-
case $? in 0
|
|
398
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
384
399
|
;;
|
|
385
400
|
treex)
|
|
386
401
|
install_treex
|
|
387
|
-
case $? in 0
|
|
402
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
388
403
|
;;
|
|
389
404
|
passman)
|
|
390
405
|
install_passman
|
|
391
|
-
case $? in 0
|
|
406
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
392
407
|
;;
|
|
393
408
|
applaunch)
|
|
394
409
|
install_applaunch
|
|
395
|
-
case $? in 0
|
|
410
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
396
411
|
;;
|
|
397
412
|
splash)
|
|
398
413
|
install_splash
|
|
399
|
-
case $? in 0
|
|
414
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
400
415
|
;;
|
|
401
416
|
*)
|
|
402
417
|
log_warn "Unknown tool: --$tool"
|
|
@@ -408,6 +423,9 @@ _install_specific_tools() {
|
|
|
408
423
|
if [[ $installed_count -gt 0 ]]; then
|
|
409
424
|
log_success "$installed_count tool(s) installed"
|
|
410
425
|
fi
|
|
426
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
427
|
+
log_info "$skipped_count tool(s) already installed"
|
|
428
|
+
fi
|
|
411
429
|
if [[ $failed_count -gt 0 ]]; then
|
|
412
430
|
log_warn "$failed_count tool(s) failed to install"
|
|
413
431
|
fi
|
|
@@ -417,32 +435,33 @@ _install_specific_tools() {
|
|
|
417
435
|
import "@/tools/games/all"
|
|
418
436
|
local installed_count=0
|
|
419
437
|
local failed_count=0
|
|
438
|
+
local skipped_count=0
|
|
420
439
|
|
|
421
440
|
for tool in "${tools[@]}"; do
|
|
422
441
|
case "$tool" in
|
|
423
442
|
buzz)
|
|
424
443
|
install_buzz
|
|
425
|
-
case $? in 0
|
|
444
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
426
445
|
;;
|
|
427
446
|
ctfgod)
|
|
428
447
|
install_ctfgod
|
|
429
|
-
case $? in 0
|
|
448
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
430
449
|
;;
|
|
431
450
|
detective)
|
|
432
451
|
install_detective
|
|
433
|
-
case $? in 0
|
|
452
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
434
453
|
;;
|
|
435
454
|
pet-friends)
|
|
436
455
|
install_pet_friends
|
|
437
|
-
case $? in 0
|
|
456
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
438
457
|
;;
|
|
439
458
|
tamagotchi)
|
|
440
459
|
install_tamagotchi
|
|
441
|
-
case $? in 0
|
|
460
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
442
461
|
;;
|
|
443
462
|
arcade)
|
|
444
463
|
install_arcade
|
|
445
|
-
case $? in 0
|
|
464
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
446
465
|
;;
|
|
447
466
|
*)
|
|
448
467
|
log_warn "Unknown game: --$tool"
|
|
@@ -454,6 +473,9 @@ _install_specific_tools() {
|
|
|
454
473
|
if [[ $installed_count -gt 0 ]]; then
|
|
455
474
|
log_success "$installed_count game(s) installed"
|
|
456
475
|
fi
|
|
476
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
477
|
+
log_info "$skipped_count game(s) already installed"
|
|
478
|
+
fi
|
|
457
479
|
if [[ $failed_count -gt 0 ]]; then
|
|
458
480
|
log_warn "$failed_count game(s) failed to install"
|
|
459
481
|
fi
|
|
@@ -463,52 +485,53 @@ _install_specific_tools() {
|
|
|
463
485
|
import "@/tools/npm/all"
|
|
464
486
|
local installed_count=0
|
|
465
487
|
local failed_count=0
|
|
488
|
+
local skipped_count=0
|
|
466
489
|
|
|
467
490
|
for tool in "${tools[@]}"; do
|
|
468
491
|
case "$tool" in
|
|
469
492
|
typescript)
|
|
470
493
|
install_typescript
|
|
471
|
-
case $? in 0
|
|
494
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
472
495
|
;;
|
|
473
496
|
nestjs)
|
|
474
497
|
install_nestjs
|
|
475
|
-
case $? in 0
|
|
498
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
476
499
|
;;
|
|
477
500
|
prettier)
|
|
478
501
|
install_prettier
|
|
479
|
-
case $? in 0
|
|
502
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
480
503
|
;;
|
|
481
504
|
live-server)
|
|
482
505
|
install_live_server
|
|
483
|
-
case $? in 0
|
|
506
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
484
507
|
;;
|
|
485
508
|
localtunnel)
|
|
486
509
|
install_localtunnel
|
|
487
|
-
case $? in 0
|
|
510
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
488
511
|
;;
|
|
489
512
|
vercel)
|
|
490
513
|
install_vercel
|
|
491
|
-
case $? in 0
|
|
514
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
492
515
|
;;
|
|
493
516
|
markserv)
|
|
494
517
|
install_markserv
|
|
495
|
-
case $? in 0
|
|
518
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
496
519
|
;;
|
|
497
520
|
psqlformat)
|
|
498
521
|
install_psqlformat
|
|
499
|
-
case $? in 0
|
|
522
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
500
523
|
;;
|
|
501
524
|
ncu)
|
|
502
525
|
install_ncu
|
|
503
|
-
case $? in 0
|
|
526
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
504
527
|
;;
|
|
505
528
|
ngrok)
|
|
506
529
|
install_ngrok
|
|
507
|
-
case $? in 0
|
|
530
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
508
531
|
;;
|
|
509
532
|
turbopack)
|
|
510
533
|
install_turbopack
|
|
511
|
-
case $? in 0
|
|
534
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
512
535
|
;;
|
|
513
536
|
*)
|
|
514
537
|
log_warn "Unknown node module: --$tool"
|
|
@@ -520,6 +543,9 @@ _install_specific_tools() {
|
|
|
520
543
|
if [[ $installed_count -gt 0 ]]; then
|
|
521
544
|
log_success "$installed_count Node.js module(s) installed"
|
|
522
545
|
fi
|
|
546
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
547
|
+
log_info "$skipped_count Node.js module(s) already installed"
|
|
548
|
+
fi
|
|
523
549
|
if [[ $failed_count -gt 0 ]]; then
|
|
524
550
|
log_warn "$failed_count module(s) failed to install"
|
|
525
551
|
fi
|
|
@@ -529,36 +555,37 @@ _install_specific_tools() {
|
|
|
529
555
|
import "@/tools/lang/all"
|
|
530
556
|
local installed_count=0
|
|
531
557
|
local failed_count=0
|
|
558
|
+
local skipped_count=0
|
|
532
559
|
|
|
533
560
|
for tool in "${tools[@]}"; do
|
|
534
561
|
case "$tool" in
|
|
535
562
|
nodejs)
|
|
536
563
|
install_nodejs
|
|
537
|
-
case $? in 0
|
|
564
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
538
565
|
;;
|
|
539
566
|
python)
|
|
540
567
|
install_python
|
|
541
|
-
case $? in 0
|
|
568
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
542
569
|
;;
|
|
543
570
|
perl)
|
|
544
571
|
install_perl
|
|
545
|
-
case $? in 0
|
|
572
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
546
573
|
;;
|
|
547
574
|
php)
|
|
548
575
|
install_php
|
|
549
|
-
case $? in 0
|
|
576
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
550
577
|
;;
|
|
551
578
|
rust)
|
|
552
579
|
install_rust
|
|
553
|
-
case $? in 0
|
|
580
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
554
581
|
;;
|
|
555
582
|
clang)
|
|
556
583
|
install_clang
|
|
557
|
-
case $? in 0
|
|
584
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
558
585
|
;;
|
|
559
586
|
golang)
|
|
560
587
|
install_golang
|
|
561
|
-
case $? in 0
|
|
588
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
562
589
|
;;
|
|
563
590
|
*)
|
|
564
591
|
log_warn "Unknown language: --$tool"
|
|
@@ -570,6 +597,9 @@ _install_specific_tools() {
|
|
|
570
597
|
if [[ $installed_count -gt 0 ]]; then
|
|
571
598
|
log_success "$installed_count language(s) installed"
|
|
572
599
|
fi
|
|
600
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
601
|
+
log_info "$skipped_count language(s) already installed"
|
|
602
|
+
fi
|
|
573
603
|
if [[ $failed_count -gt 0 ]]; then
|
|
574
604
|
log_warn "$failed_count language(s) failed to install"
|
|
575
605
|
fi
|
|
@@ -579,48 +609,49 @@ _install_specific_tools() {
|
|
|
579
609
|
import "@/tools/shell/all"
|
|
580
610
|
local installed_count=0
|
|
581
611
|
local failed_count=0
|
|
612
|
+
local skipped_count=0
|
|
582
613
|
|
|
583
614
|
for tool in "${tools[@]}"; do
|
|
584
615
|
case "$tool" in
|
|
585
616
|
powerlevel10k)
|
|
586
617
|
install_powerlevel10k
|
|
587
|
-
case $? in 0
|
|
618
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
588
619
|
;;
|
|
589
620
|
zsh-defer)
|
|
590
621
|
install_zsh_defer
|
|
591
|
-
case $? in 0
|
|
622
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
592
623
|
;;
|
|
593
624
|
zsh-autosuggestions)
|
|
594
625
|
install_zsh_autosuggestions
|
|
595
|
-
case $? in 0
|
|
626
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
596
627
|
;;
|
|
597
628
|
zsh-syntax-highlighting)
|
|
598
629
|
install_zsh_syntax_highlighting
|
|
599
|
-
case $? in 0
|
|
630
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
600
631
|
;;
|
|
601
632
|
history-substring)
|
|
602
633
|
install_history_substring
|
|
603
|
-
case $? in 0
|
|
634
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
604
635
|
;;
|
|
605
636
|
zsh-completions)
|
|
606
637
|
install_zsh_completions
|
|
607
|
-
case $? in 0
|
|
638
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
608
639
|
;;
|
|
609
640
|
fzf-tab)
|
|
610
641
|
install_fzf_tab
|
|
611
|
-
case $? in 0
|
|
642
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
612
643
|
;;
|
|
613
644
|
you-should-use)
|
|
614
645
|
install_you_should_use
|
|
615
|
-
case $? in 0
|
|
646
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
616
647
|
;;
|
|
617
648
|
zsh-autopair)
|
|
618
649
|
install_zsh_autopair
|
|
619
|
-
case $? in 0
|
|
650
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
620
651
|
;;
|
|
621
652
|
better-npm)
|
|
622
653
|
install_better_npm
|
|
623
|
-
case $? in 0
|
|
654
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
624
655
|
;;
|
|
625
656
|
*)
|
|
626
657
|
log_warn "Unknown plugin: --$tool"
|
|
@@ -632,6 +663,9 @@ _install_specific_tools() {
|
|
|
632
663
|
if [[ $installed_count -gt 0 ]]; then
|
|
633
664
|
log_success "$installed_count plugin(s) installed"
|
|
634
665
|
fi
|
|
666
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
667
|
+
log_info "$skipped_count plugin(s) already installed"
|
|
668
|
+
fi
|
|
635
669
|
if [[ $failed_count -gt 0 ]]; then
|
|
636
670
|
log_warn "$failed_count plugin(s) failed to install"
|
|
637
671
|
fi
|
|
@@ -641,20 +675,21 @@ _install_specific_tools() {
|
|
|
641
675
|
import "@/tools/editor/all"
|
|
642
676
|
local installed_count=0
|
|
643
677
|
local failed_count=0
|
|
678
|
+
local skipped_count=0
|
|
644
679
|
|
|
645
680
|
for tool in "${tools[@]}"; do
|
|
646
681
|
case "$tool" in
|
|
647
682
|
code-server)
|
|
648
683
|
install_code_server
|
|
649
|
-
case $? in 0
|
|
684
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
650
685
|
;;
|
|
651
686
|
neovim)
|
|
652
687
|
install_neovim
|
|
653
|
-
case $? in 0
|
|
688
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
654
689
|
;;
|
|
655
690
|
nvchad)
|
|
656
691
|
install_nvchad
|
|
657
|
-
case $? in 0
|
|
692
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
658
693
|
;;
|
|
659
694
|
*)
|
|
660
695
|
log_warn "Unknown editor component: --$tool"
|
|
@@ -666,6 +701,9 @@ _install_specific_tools() {
|
|
|
666
701
|
if [[ $installed_count -gt 0 ]]; then
|
|
667
702
|
log_success "$installed_count editor component(s) installed"
|
|
668
703
|
fi
|
|
704
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
705
|
+
log_info "$skipped_count editor component(s) already installed"
|
|
706
|
+
fi
|
|
669
707
|
if [[ $failed_count -gt 0 ]]; then
|
|
670
708
|
log_warn "$failed_count component(s) failed to install"
|
|
671
709
|
fi
|
|
@@ -675,24 +713,25 @@ _install_specific_tools() {
|
|
|
675
713
|
import "@/tools/ui/all"
|
|
676
714
|
local installed_count=0
|
|
677
715
|
local failed_count=0
|
|
716
|
+
local skipped_count=0
|
|
678
717
|
|
|
679
718
|
for tool in "${tools[@]}"; do
|
|
680
719
|
case "$tool" in
|
|
681
720
|
font)
|
|
682
721
|
install_font
|
|
683
|
-
case $? in 0
|
|
722
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
684
723
|
;;
|
|
685
724
|
extra-keys)
|
|
686
725
|
install_extra_keys
|
|
687
|
-
case $? in 0
|
|
726
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
688
727
|
;;
|
|
689
728
|
cursor)
|
|
690
729
|
install_cursor
|
|
691
|
-
case $? in 0
|
|
730
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
692
731
|
;;
|
|
693
732
|
banner)
|
|
694
733
|
install_banner
|
|
695
|
-
case $? in 0
|
|
734
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
696
735
|
;;
|
|
697
736
|
*)
|
|
698
737
|
log_warn "Unknown UI component: --$tool"
|
|
@@ -704,6 +743,9 @@ _install_specific_tools() {
|
|
|
704
743
|
if [[ $installed_count -gt 0 ]]; then
|
|
705
744
|
log_success "$installed_count UI component(s) installed"
|
|
706
745
|
fi
|
|
746
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
747
|
+
log_info "$skipped_count UI component(s) already installed"
|
|
748
|
+
fi
|
|
707
749
|
if [[ $failed_count -gt 0 ]]; then
|
|
708
750
|
log_warn "$failed_count component(s) failed to install"
|
|
709
751
|
fi
|
|
@@ -713,12 +755,13 @@ _install_specific_tools() {
|
|
|
713
755
|
import "@/tools/auto/all"
|
|
714
756
|
local installed_count=0
|
|
715
757
|
local failed_count=0
|
|
758
|
+
local skipped_count=0
|
|
716
759
|
|
|
717
760
|
for tool in "${tools[@]}"; do
|
|
718
761
|
case "$tool" in
|
|
719
762
|
n8n)
|
|
720
763
|
install_n8n
|
|
721
|
-
case $? in 0
|
|
764
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
722
765
|
;;
|
|
723
766
|
*)
|
|
724
767
|
log_warn "Unknown automation tool: --$tool"
|
|
@@ -730,6 +773,9 @@ _install_specific_tools() {
|
|
|
730
773
|
if [[ $installed_count -gt 0 ]]; then
|
|
731
774
|
log_success "$installed_count automation tool(s) installed"
|
|
732
775
|
fi
|
|
776
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
777
|
+
log_info "$skipped_count automation tool(s) already installed"
|
|
778
|
+
fi
|
|
733
779
|
if [[ $failed_count -gt 0 ]]; then
|
|
734
780
|
log_warn "$failed_count tool(s) failed to install"
|
|
735
781
|
fi
|
|
@@ -739,20 +785,21 @@ _install_specific_tools() {
|
|
|
739
785
|
import "@/tools/deploy/all"
|
|
740
786
|
local installed_count=0
|
|
741
787
|
local failed_count=0
|
|
788
|
+
local skipped_count=0
|
|
742
789
|
|
|
743
790
|
for tool in "${tools[@]}"; do
|
|
744
791
|
case "$tool" in
|
|
745
792
|
vercel)
|
|
746
793
|
install_vercel
|
|
747
|
-
case $? in 0
|
|
794
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
748
795
|
;;
|
|
749
796
|
railway)
|
|
750
797
|
install_railway
|
|
751
|
-
case $? in 0
|
|
798
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
752
799
|
;;
|
|
753
800
|
netlify)
|
|
754
801
|
install_netlify
|
|
755
|
-
case $? in 0
|
|
802
|
+
case $? in 0) ((installed_count++));; 2) ((skipped_count++));; 1) ((failed_count++));; esac
|
|
756
803
|
;;
|
|
757
804
|
*)
|
|
758
805
|
log_warn "Unknown deploy tool: --$tool"
|
|
@@ -764,11 +811,19 @@ _install_specific_tools() {
|
|
|
764
811
|
if [[ $installed_count -gt 0 ]]; then
|
|
765
812
|
log_success "$installed_count deploy CLI(s) installed"
|
|
766
813
|
fi
|
|
814
|
+
if [[ $skipped_count -gt 0 ]]; then
|
|
815
|
+
log_info "$skipped_count deploy CLI(s) already installed"
|
|
816
|
+
fi
|
|
767
817
|
if [[ $failed_count -gt 0 ]]; then
|
|
768
818
|
log_warn "$failed_count CLI(s) failed to install"
|
|
769
819
|
fi
|
|
770
820
|
echo
|
|
771
821
|
;;
|
|
822
|
+
osint)
|
|
823
|
+
import "@/tools/osint/robin/common"
|
|
824
|
+
_robin_print_disclaimer
|
|
825
|
+
_batch_tool_action "osint" "install" "${tools[@]}"
|
|
826
|
+
;;
|
|
772
827
|
*)
|
|
773
828
|
log_warn "Unknown install target: $module"
|
|
774
829
|
echo "Run 'karnel install' to see available targets"
|