karnel-termux 0.0.4 → 4.7.6

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.
Files changed (46) hide show
  1. package/README.md +7 -9
  2. package/install.sh +9 -0
  3. package/karnel/bin/karnel +1 -1
  4. package/karnel/cli/commands/backup.sh +100 -0
  5. package/karnel/cli/commands/doctor/fixes.sh +310 -0
  6. package/karnel/cli/commands/doctor/system.sh +87 -0
  7. package/karnel/cli/commands/doctor.sh +7 -308
  8. package/karnel/cli/commands/install.sh +21 -2
  9. package/karnel/cli/commands/list.sh +5 -0
  10. package/karnel/cli/commands/reinstall.sh +5 -1
  11. package/karnel/cli/commands/restore.sh +83 -0
  12. package/karnel/cli/commands/search.sh +62 -0
  13. package/karnel/cli/commands/show.sh +102 -38
  14. package/karnel/cli/commands/uninstall.sh +3 -551
  15. package/karnel/cli/commands/update.sh +3 -551
  16. package/karnel/cli/karnel.sh +5 -0
  17. package/karnel/modules/db.sh +2 -0
  18. package/karnel/modules/dev.sh +9 -3
  19. package/karnel/tools/ai/antigravity-cli/bin/agy +1 -1
  20. package/karnel/tools/ai/claude-code/bin/claude +1 -1
  21. package/karnel/tools/ai/codegraph/bin/codegraph +1 -1
  22. package/karnel/tools/ai/freebuff/bin/freebuff +1 -1
  23. package/karnel/tools/ai/kilocode-cli/bin/kilocode +1 -1
  24. package/karnel/tools/ai/kilocode-cli/install.sh +1 -1
  25. package/karnel/tools/ai/kimchi-code/bin/kimchi +1 -1
  26. package/karnel/tools/ai/mimocode/bin/mimo +1 -1
  27. package/karnel/tools/ai/omni-route/README.md +17 -15
  28. package/karnel/tools/ai/opencode/bin/opencode +1 -1
  29. package/karnel/tools/db/redis/install.sh +1 -1
  30. package/karnel/tools/dev/all.sh +3 -0
  31. package/karnel/tools/dev/httptmux/install.sh +75 -0
  32. package/karnel/tools/dev/openssh/install.sh +1 -1
  33. package/karnel/tools/dev/snyk/install.sh +75 -0
  34. package/karnel/tools/dev/tmux/install.sh +1 -1
  35. package/karnel/tools/dev/zork/install.sh +133 -0
  36. package/karnel/tools/editor/neovim/install.sh +1 -1
  37. package/karnel/tools/editor/nvchad/install.sh +1 -1
  38. package/karnel/tools/npm/turbopack/bin/next-turbopack +1 -1
  39. package/karnel/tools/npm/turbopack/bin/node-glibc.sh +1 -1
  40. package/karnel/utils/env.sh +1 -1
  41. package/karnel/utils/log.sh +70 -0
  42. package/karnel/utils/tools.sh +34 -0
  43. package/karnel/utils/version.sh +1 -1
  44. package/package.json +1 -1
  45. package/scripts/completion.bash +28 -0
  46. package/scripts/completion.zsh +90 -0
@@ -1,7 +1,8 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  import "@/utils/log"
4
4
  import "@/utils/colors"
5
+ import "@/utils/tools"
5
6
 
6
7
  update_main() {
7
8
 
@@ -118,556 +119,7 @@ _update_full_module() {
118
119
  _update_specific_tools() {
119
120
  local module="$1"
120
121
  shift
121
- local -a tools=("$@")
122
-
123
- case "$module" in
124
- ai)
125
- import "@/tools/ai/all"
126
- local updated_count=0
127
- local failed_count=0
128
-
129
- for tool in "${tools[@]}"; do
130
- case "$tool" in
131
- qwen-code)
132
- update_qwen_code
133
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
134
- ;;
135
- gemini-cli)
136
- update_gemini_cli
137
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
138
- ;;
139
- claude-code)
140
- update_claude_code
141
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
142
- ;;
143
- mistral-vibe)
144
- update_mistral_vibe
145
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
146
- ;;
147
- openclaude)
148
- update_openclaude
149
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
150
- ;;
151
- openclaw)
152
- update_openclaw
153
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
154
- ;;
155
- ollama)
156
- update_ollama
157
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
158
- ;;
159
- codex)
160
- update_codex
161
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
162
- ;;
163
- opencode)
164
- update_opencode
165
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
166
- ;;
167
- kilocode-cli)
168
- update_kilocode_cli
169
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
170
- ;;
171
- kimchi)
172
- update_kimchi
173
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
174
- ;;
175
- mimocode)
176
- update_mimocode
177
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
178
- ;;
179
- engram)
180
- update_engram
181
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
182
- ;;
183
- codegraph)
184
- update_codegraph
185
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
186
- ;;
187
- pi)
188
- update_pi
189
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
190
- ;;
191
- antigravity-cli)
192
- update_antigravity_cli
193
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
194
- ;;
195
- minimax-cli)
196
- update_minimax_cli
197
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
198
- ;;
199
- gentle-ai)
200
- update_gentle_ai
201
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
202
- ;;
203
- gga)
204
- update_gga
205
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
206
- ;;
207
- hermes-agent)
208
- update_hermes_agent
209
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
210
- ;;
211
- kimi-code)
212
- update_kimi_code
213
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
214
- ;;
215
- command-code)
216
- update_command_code
217
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
218
- ;;
219
- freebuff)
220
- update_freebuff
221
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
222
- ;;
223
- ctx7)
224
- update_ctx7
225
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
226
- ;;
227
- openspec)
228
- update_openspec
229
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
230
- ;;
231
- *)
232
- log_warn "Unknown AI tool: --$tool"
233
- ;;
234
- esac
235
- done
236
-
237
- echo
238
- if [[ $updated_count -gt 0 ]]; then
239
- log_success "$updated_count AI tool(s) updated"
240
- fi
241
- if [[ $failed_count -gt 0 ]]; then
242
- log_warn "$failed_count tool(s) failed to update"
243
- fi
244
- echo
245
- ;;
246
- db)
247
- import "@/tools/db/all"
248
- local updated_count=0
249
- local failed_count=0
250
-
251
- for tool in "${tools[@]}"; do
252
- case "$tool" in
253
- postgresql)
254
- update_postgresql
255
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
256
- ;;
257
- mariadb)
258
- update_mariadb
259
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
260
- ;;
261
- sqlite)
262
- update_sqlite
263
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
264
- ;;
265
- mongodb)
266
- update_mongodb
267
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
268
- ;;
269
- redis)
270
- update_redis
271
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
272
- ;;
273
- *)
274
- log_warn "Unknown database: --$tool"
275
- ;;
276
- esac
277
- done
278
-
279
- echo
280
- if [[ $updated_count -gt 0 ]]; then
281
- log_success "$updated_count database(s) updated"
282
- fi
283
- if [[ $failed_count -gt 0 ]]; then
284
- log_warn "$failed_count database(s) failed to update"
285
- fi
286
- echo
287
- ;;
288
- dev)
289
- import "@/tools/dev/all"
290
- local updated_count=0
291
- local failed_count=0
292
-
293
- for tool in "${tools[@]}"; do
294
- case "$tool" in
295
- gh)
296
- update_gh
297
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
298
- ;;
299
- wget)
300
- update_wget
301
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
302
- ;;
303
- curl)
304
- update_curl
305
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
306
- ;;
307
- lsd)
308
- update_lsd
309
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
310
- ;;
311
- bat)
312
- update_bat
313
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
314
- ;;
315
- proot)
316
- update_proot
317
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
318
- ;;
319
- ncurses)
320
- update_ncurses
321
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
322
- ;;
323
- tmate)
324
- update_tmate
325
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
326
- ;;
327
- tmux)
328
- update_tmux
329
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
330
- ;;
331
- openssh)
332
- update_openssh
333
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
334
- ;;
335
- cloudflared)
336
- update_cloudflared
337
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
338
- ;;
339
- translate)
340
- update_translate
341
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
342
- ;;
343
- html2text)
344
- update_html2text
345
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
346
- ;;
347
- jq)
348
- update_jq
349
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
350
- ;;
351
- bc)
352
- update_bc
353
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
354
- ;;
355
- tree)
356
- update_tree
357
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
358
- ;;
359
- fzf)
360
- update_fzf
361
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
362
- ;;
363
- imagemagick)
364
- update_imagemagick
365
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
366
- ;;
367
- shfmt)
368
- update_shfmt
369
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
370
- ;;
371
- make)
372
- update_make
373
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
374
- ;;
375
- udocker)
376
- update_udocker
377
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
378
- ;;
379
- *)
380
- log_warn "Unknown tool: --$tool"
381
- ;;
382
- esac
383
- done
384
-
385
- echo
386
- if [[ $updated_count -gt 0 ]]; then
387
- log_success "$updated_count tool(s) updated"
388
- fi
389
- if [[ $failed_count -gt 0 ]]; then
390
- log_warn "$failed_count tool(s) failed to update"
391
- fi
392
- echo
393
- ;;
394
- npm)
395
- import "@/tools/npm/all"
396
- local updated_count=0
397
- local failed_count=0
398
-
399
- for tool in "${tools[@]}"; do
400
- case "$tool" in
401
- typescript)
402
- update_typescript
403
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
404
- ;;
405
- nestjs)
406
- update_nestjs
407
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
408
- ;;
409
- prettier)
410
- update_prettier
411
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
412
- ;;
413
- live-server)
414
- update_live_server
415
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
416
- ;;
417
- localtunnel)
418
- update_localtunnel
419
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
420
- ;;
421
- vercel)
422
- update_vercel
423
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
424
- ;;
425
- markserv)
426
- update_markserv
427
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
428
- ;;
429
- psqlformat)
430
- update_psqlformat
431
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
432
- ;;
433
- ncu)
434
- update_ncu
435
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
436
- ;;
437
- ngrok)
438
- update_ngrok
439
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
440
- ;;
441
- turbopack)
442
- update_turbopack
443
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
444
- ;;
445
- *)
446
- log_warn "Unknown node module: --$tool"
447
- ;;
448
- esac
449
- done
450
-
451
- echo
452
- if [[ $updated_count -gt 0 ]]; then
453
- log_success "$updated_count Node.js module(s) updated"
454
- fi
455
- if [[ $failed_count -gt 0 ]]; then
456
- log_warn "$failed_count module(s) failed to update"
457
- fi
458
- echo
459
- ;;
460
- lang)
461
- import "@/tools/lang/all"
462
- local updated_count=0
463
- local failed_count=0
464
-
465
- for tool in "${tools[@]}"; do
466
- case "$tool" in
467
- nodejs)
468
- update_npmjs
469
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
470
- ;;
471
- python)
472
- update_python
473
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
474
- ;;
475
- perl)
476
- update_perl
477
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
478
- ;;
479
- php)
480
- update_php
481
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
482
- ;;
483
- rust)
484
- update_rust
485
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
486
- ;;
487
- clang)
488
- update_clang
489
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
490
- ;;
491
- golang)
492
- update_golang
493
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
494
- ;;
495
- *)
496
- log_warn "Unknown language: --$tool"
497
- ;;
498
- esac
499
- done
500
-
501
- echo
502
- if [[ $updated_count -gt 0 ]]; then
503
- log_success "$updated_count language(s) updated"
504
- fi
505
- if [[ $failed_count -gt 0 ]]; then
506
- log_warn "$failed_count language(s) failed to update"
507
- fi
508
- echo
509
- ;;
510
- shell)
511
- import "@/tools/shell/all"
512
- local updated_count=0
513
- local failed_count=0
514
-
515
- for tool in "${tools[@]}"; do
516
- case "$tool" in
517
- powerlevel10k)
518
- update_powerlevel10k
519
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
520
- ;;
521
- zsh-defer)
522
- update_zsh_defer
523
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
524
- ;;
525
- zsh-autosuggestions)
526
- update_zsh_autosuggestions
527
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
528
- ;;
529
- zsh-syntax-highlighting)
530
- update_zsh_syntax_highlighting
531
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
532
- ;;
533
- history-substring)
534
- update_history_substring
535
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
536
- ;;
537
- zsh-completions)
538
- update_zsh_completions
539
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
540
- ;;
541
- fzf-tab)
542
- update_fzf_tab
543
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
544
- ;;
545
- you-should-use)
546
- update_you_should_use
547
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
548
- ;;
549
- zsh-autopair)
550
- update_zsh_autopair
551
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
552
- ;;
553
- better-npm)
554
- update_better_npm
555
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
556
- ;;
557
- *)
558
- log_warn "Unknown plugin: --$tool"
559
- ;;
560
- esac
561
- done
562
-
563
- echo
564
- if [[ $updated_count -gt 0 ]]; then
565
- log_success "$updated_count plugin(s) updated"
566
- fi
567
- if [[ $failed_count -gt 0 ]]; then
568
- log_warn "$failed_count plugin(s) failed to update"
569
- fi
570
- echo
571
- ;;
572
- editor)
573
- import "@/tools/editor/all"
574
- local updated_count=0
575
- local failed_count=0
576
-
577
- for tool in "${tools[@]}"; do
578
- case "$tool" in
579
- neovim)
580
- update_neovim
581
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
582
- ;;
583
- nvchad)
584
- update_nvchad
585
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
586
- ;;
587
- *)
588
- log_warn "Unknown editor component: --$tool"
589
- ;;
590
- esac
591
- done
592
-
593
- echo
594
- if [[ $updated_count -gt 0 ]]; then
595
- log_success "$updated_count editor component(s) updated"
596
- fi
597
- if [[ $failed_count -gt 0 ]]; then
598
- log_warn "$failed_count component(s) failed to update"
599
- fi
600
- echo
601
- ;;
602
- ui)
603
- import "@/tools/ui/all"
604
- local updated_count=0
605
- local failed_count=0
606
-
607
- for tool in "${tools[@]}"; do
608
- case "$tool" in
609
- font)
610
- update_font
611
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
612
- ;;
613
- extra-keys)
614
- update_extra_keys
615
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
616
- ;;
617
- cursor)
618
- update_cursor
619
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
620
- ;;
621
- banner)
622
- update_banner
623
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
624
- ;;
625
- *)
626
- log_warn "Unknown UI component: --$tool"
627
- ;;
628
- esac
629
- done
630
-
631
- echo
632
- if [[ $updated_count -gt 0 ]]; then
633
- log_success "$updated_count UI component(s) updated"
634
- fi
635
- if [[ $failed_count -gt 0 ]]; then
636
- log_warn "$failed_count component(s) failed to update"
637
- fi
638
- echo
639
- ;;
640
- auto)
641
- import "@/tools/auto/all"
642
- local updated_count=0
643
- local failed_count=0
644
-
645
- for tool in "${tools[@]}"; do
646
- case "$tool" in
647
- n8n)
648
- update_n8n
649
- case $? in 0) ((updated_count++));; 1) ((failed_count++));; esac
650
- ;;
651
- *)
652
- log_warn "Unknown automation tool: --$tool"
653
- ;;
654
- esac
655
- done
656
-
657
- echo
658
- if [[ $updated_count -gt 0 ]]; then
659
- log_success "$updated_count automation tool(s) updated"
660
- fi
661
- if [[ $failed_count -gt 0 ]]; then
662
- log_warn "$failed_count tool(s) failed to update"
663
- fi
664
- echo
665
- ;;
666
- *)
667
- log_warn "Unknown update target: $module"
668
- echo "Run 'karnel update' to see available targets"
669
- ;;
670
- esac
122
+ _batch_tool_action "$module" "update" "$@"
671
123
  }
672
124
 
673
125
  # Actualizar Karnel-Termux
@@ -59,6 +59,9 @@ karnel_help() {
59
59
  echo
60
60
  printf " ${D_CYAN}%-12s${NC} %s\n" "--version" "Show current version"
61
61
  printf " ${D_CYAN}%-12s${NC} %s\n" "brain" "Second brain — save and search memories"
62
+ printf " ${D_CYAN}%-12s${NC} %s\n" "backup" "Backup all Termux configs + tools"
63
+ printf " ${D_CYAN}%-12s${NC} %s\n" "restore" "Restore from a backup"
64
+ printf " ${D_CYAN}%-12s${NC} %s\n" "search" "Search tools and memories"
62
65
  printf " ${D_CYAN}%-12s${NC} %s\n" "cleanup" "Clean caches, logs, and temp files"
63
66
  printf " ${D_CYAN}%-12s${NC} %s\n" "env" "Manage environment variables"
64
67
  printf " ${D_CYAN}%-12s${NC} %s\n" "install" "Install modules and packages"
@@ -84,6 +87,8 @@ karnel_help() {
84
87
  list_item "Run: ${D_CYAN}karnel${NC} to see available commands"
85
88
  list_item "Run: ${D_CYAN}karnel open${NC} for official documentation"
86
89
  list_item "Run: ${D_CYAN}karnel install <module>${NC} to install modules"
90
+ list_item "Run: ${D_CYAN}karnel backup${NC} to save all configs"
91
+ list_item "Run: ${D_CYAN}karnel restore${NC} to restore"
87
92
  echo
88
93
  separator_section "Module Targets"
89
94
  echo
@@ -33,6 +33,7 @@ install_db() {
33
33
  list_item "MariaDB (MySQL)"
34
34
  list_item "SQLite"
35
35
  list_item "MongoDB"
36
+ list_item "Redis"
36
37
  echo
37
38
  }
38
39
 
@@ -122,6 +123,7 @@ reinstall_db() {
122
123
  list_item "MariaDB (MySQL)"
123
124
  list_item "SQLite"
124
125
  list_item "MongoDB"
126
+ list_item "Redis"
125
127
  echo
126
128
  }
127
129
 
@@ -43,6 +43,9 @@ install_dev() {
43
43
  list_item "Shfmt (shell script formatter)"
44
44
  list_item "Make (build automation)"
45
45
  list_item "Udocker (container management)"
46
+ list_item "Snyk (security scanner)"
47
+ list_item "httptmux (interactive API client)"
48
+ list_item "Zork (text adventure games I, II, III)"
46
49
  echo
47
50
  }
48
51
 
@@ -136,9 +139,12 @@ reinstall_dev() {
136
139
  list_item "Fzf (fuzzy finder)"
137
140
  list_item "ImageMagick (image manipulation)"
138
141
  list_item "Shfmt (shell script formatter)"
139
- list_item "Make (build automation)"
140
- list_item "Udocker (container management)"
141
- echo
142
+ list_item "Make (build automation)"
143
+ list_item "Udocker (container management)"
144
+ list_item "Snyk (security scanner)"
145
+ list_item "httptmux (interactive API client)"
146
+ list_item "Zork (text adventure games I, II, III)"
147
+ echo
142
148
  }
143
149
 
144
150
  _reinstall_dev_wrapper() {
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
4
4
 
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
4
4
 
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  export CODEGRAPH_ALLOW_UNSAFE_NODE=1
4
4
 
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
4
4
 
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  KILOCODE_DATA_DIR="$HOME/.local/share/karnel-data/kilocode"
4
4
 
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  import "@/utils/log"
4
4
  import "@/utils/version"
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
4
4
 
@@ -1,4 +1,4 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
1
+ #!/usr/bin/env bash
2
2
 
3
3
  UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
4
4