karnel-termux 4.7.7 → 4.9.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 +46 -5
- package/install.sh +2 -2
- package/karnel/cli/commands/backup.sh +13 -2
- package/karnel/cli/commands/doctor/fixes.sh +111 -13
- package/karnel/cli/commands/doctor.sh +112 -10
- package/karnel/cli/commands/init.sh +2 -2
- package/karnel/cli/commands/install.sh +155 -118
- package/karnel/cli/commands/list.sh +106 -13
- package/karnel/cli/commands/open.sh +28 -8
- package/karnel/cli/commands/reinstall.sh +79 -46
- package/karnel/cli/commands/restore.sh +16 -0
- package/karnel/cli/commands/robin.sh +656 -0
- package/karnel/cli/commands/search.sh +1 -0
- package/karnel/cli/commands/show.sh +1 -0
- package/karnel/cli/commands/start.sh +12 -2
- package/karnel/cli/commands/status.sh +11 -0
- package/karnel/cli/commands/uninstall.sh +47 -0
- package/karnel/cli/commands/update.sh +43 -0
- package/karnel/cli/commands/version.sh +2 -0
- package/karnel/cli/commands/voice.sh +11 -6
- package/karnel/cli/karnel.sh +115 -69
- package/karnel/modules/ai.sh +21 -6
- package/karnel/modules/deploy.sh +4 -0
- package/karnel/modules/dev.sh +19 -46
- package/karnel/modules/games.sh +81 -4
- package/karnel/modules/network.sh +88 -0
- package/karnel/modules/osint.sh +123 -0
- package/karnel/modules/shell.sh +1 -1
- package/karnel/modules/ui.sh +4 -0
- package/karnel/modules/utils.sh +88 -0
- package/karnel/modules/voice.sh +8 -2
- package/karnel/tools/ai/all.sh +1 -0
- package/karnel/tools/ai/antigravity-cli/install.sh +0 -0
- package/karnel/tools/ai/claude-code/install.sh +0 -0
- package/karnel/tools/ai/cline/install.sh +8 -8
- package/karnel/tools/ai/codegraph/install.sh +8 -5
- package/karnel/tools/ai/codex/install.sh +0 -0
- package/karnel/tools/ai/command-code/install.sh +0 -0
- package/karnel/tools/ai/copilot-termux/install.sh +0 -0
- package/karnel/tools/ai/crush/install.sh +1 -1
- package/karnel/tools/ai/ctx7/install.sh +0 -0
- package/karnel/tools/ai/engram/install.sh +5 -2
- package/karnel/tools/ai/freebuff/install.sh +0 -0
- package/karnel/tools/ai/gemini-cli/install.sh +0 -0
- package/karnel/tools/ai/gentle-ai/install.sh +1 -1
- package/karnel/tools/ai/hermes-agent/install.sh +0 -0
- package/karnel/tools/ai/kilocode-cli/install.sh +0 -0
- package/karnel/tools/ai/kimchi-code/install.sh +3 -1
- package/karnel/tools/ai/kimi-code/install.sh +0 -0
- package/karnel/tools/ai/kiro/install.sh +0 -0
- package/karnel/tools/ai/mimocode/install.sh +0 -0
- package/karnel/tools/ai/minimax-cli/install.sh +0 -0
- package/karnel/tools/ai/mistral-vibe/install.sh +0 -0
- package/karnel/tools/ai/odysseus/install.sh +0 -0
- package/karnel/tools/ai/ollama/install.sh +0 -0
- package/karnel/tools/ai/omni-route/install.sh +1 -1
- package/karnel/tools/ai/openclaude/install.sh +0 -0
- package/karnel/tools/ai/openclaw/install.sh +0 -0
- package/karnel/tools/ai/opencode/install.sh +0 -0
- package/karnel/tools/ai/openspec/install.sh +0 -0
- package/karnel/tools/ai/pi/install.sh +0 -0
- package/karnel/tools/ai/qoder/README.md +50 -0
- package/karnel/tools/ai/qoder/bin/qodercli +28 -0
- package/karnel/tools/ai/qoder/helper/qoder_helper.c +47 -0
- package/karnel/tools/ai/qoder/install.sh +367 -0
- package/karnel/tools/ai/qwen-code/install.sh +0 -0
- package/karnel/tools/auto/all.sh +1 -1
- package/karnel/tools/auto/n8n/install.sh +0 -0
- package/karnel/tools/db/all.sh +1 -1
- package/karnel/tools/db/mariadb/install.sh +0 -0
- package/karnel/tools/db/mongodb/install.sh +0 -0
- package/karnel/tools/db/postgresql/install.sh +0 -0
- package/karnel/tools/db/sqlite/install.sh +0 -0
- package/karnel/tools/deploy/all.sh +2 -2
- package/karnel/tools/deploy/netlify/install.sh +0 -0
- package/karnel/tools/deploy/railway/install.sh +1 -1
- package/karnel/tools/deploy/vercel/install.sh +0 -0
- package/karnel/tools/dev/all.sh +36 -13
- package/karnel/tools/dev/bat/install.sh +0 -0
- package/karnel/tools/dev/bc/install.sh +0 -0
- package/karnel/tools/dev/cloudflared/install.sh +0 -0
- package/karnel/tools/dev/curl/install.sh +0 -0
- package/karnel/tools/dev/fzf/install.sh +36 -9
- package/karnel/tools/dev/gh/install.sh +0 -0
- package/karnel/tools/dev/html2text/install.sh +0 -0
- package/karnel/tools/dev/imagemagick/install.sh +0 -0
- package/karnel/tools/dev/jq/install.sh +0 -0
- package/karnel/tools/dev/lsd/install.sh +0 -0
- package/karnel/tools/dev/make/install.sh +0 -0
- package/karnel/tools/dev/ncurses/install.sh +0 -0
- package/karnel/tools/dev/proot/install.sh +0 -0
- package/karnel/tools/dev/shfmt/install.sh +0 -0
- package/karnel/tools/dev/snyk/install.sh +0 -0
- package/karnel/tools/dev/tmate/install.sh +0 -0
- package/karnel/tools/dev/translate/install.sh +0 -0
- package/karnel/tools/dev/tree/install.sh +0 -0
- package/karnel/tools/dev/udocker/install.sh +0 -0
- package/karnel/tools/dev/wget/install.sh +0 -0
- package/karnel/tools/editor/all.sh +1 -1
- package/karnel/tools/editor/code-server/install.sh +0 -0
- package/karnel/tools/games/all.sh +1 -1
- package/karnel/tools/games/arcade/install.sh +0 -0
- package/karnel/tools/games/buzz/install.sh +0 -0
- package/karnel/tools/games/ctfgod/install.sh +0 -0
- package/karnel/tools/games/detective/install.sh +0 -0
- package/karnel/tools/games/pet-friends/install.sh +0 -0
- package/karnel/tools/games/tamagotchi/install.sh +0 -0
- package/karnel/tools/lang/all.sh +2 -1
- package/karnel/tools/lang/bun/bin/bun +27 -0
- package/karnel/tools/lang/bun/install.sh +318 -0
- package/karnel/tools/lang/bun/src/bun-shim.c +352 -0
- package/karnel/tools/lang/bun/src/bun_wrapper.c +55 -0
- package/karnel/tools/lang/clang/install.sh +0 -0
- package/karnel/tools/lang/golang/install.sh +0 -0
- package/karnel/tools/lang/nodejs/install.sh +0 -0
- package/karnel/tools/lang/perl/install.sh +0 -0
- package/karnel/tools/lang/php/install.sh +0 -0
- package/karnel/tools/lang/python/install.sh +0 -0
- package/karnel/tools/lang/rust/install.sh +0 -0
- package/karnel/tools/network/all.sh +65 -0
- package/karnel/tools/network/dark/README.md +45 -0
- package/karnel/tools/network/dark/dark.py +709 -0
- package/karnel/tools/network/dark/install.sh +51 -0
- package/karnel/tools/network/dedsec-network/README.md +42 -0
- package/karnel/tools/network/dedsec-network/dedsec-network.py +709 -0
- package/karnel/tools/network/dedsec-network/install.sh +50 -0
- package/karnel/tools/npm/all.sh +1 -1
- package/karnel/tools/npm/live-server/install.sh +0 -0
- package/karnel/tools/npm/localtunnel/install.sh +0 -0
- package/karnel/tools/npm/markserv/install.sh +0 -0
- package/karnel/tools/npm/ncu/install.sh +0 -0
- package/karnel/tools/npm/nestjs/install.sh +0 -0
- package/karnel/tools/npm/ngrok/install.sh +0 -0
- package/karnel/tools/npm/prettier/install.sh +0 -0
- package/karnel/tools/npm/psqlformat/install.sh +0 -0
- package/karnel/tools/npm/turbopack/install.sh +2 -0
- package/karnel/tools/npm/typescript/install.sh +0 -0
- package/karnel/tools/npm/vercel/install.sh +0 -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/tools/shell/all.sh +1 -1
- package/karnel/tools/shell/better-npm/install.sh +0 -0
- package/karnel/tools/shell/fzf-tab/install.sh +0 -0
- package/karnel/tools/shell/history-substring/install.sh +0 -0
- package/karnel/tools/shell/powerlevel10k/install.sh +0 -0
- package/karnel/tools/shell/you-should-use/install.sh +0 -0
- package/karnel/tools/shell/zsh-autopair/install.sh +0 -0
- package/karnel/tools/shell/zsh-autosuggestions/install.sh +0 -0
- package/karnel/tools/shell/zsh-completions/install.sh +0 -0
- package/karnel/tools/shell/zsh-defer/install.sh +0 -0
- package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +0 -0
- package/karnel/tools/ui/all.sh +1 -1
- package/karnel/tools/ui/banner/install.sh +0 -0
- package/karnel/tools/ui/cursor/install.sh +0 -0
- package/karnel/tools/ui/extra-keys/install.sh +0 -0
- package/karnel/tools/ui/font/install.sh +0 -0
- package/karnel/tools/utils/all.sh +88 -0
- package/karnel/tools/utils/applaunch/README.md +43 -0
- package/karnel/tools/{dev → utils}/applaunch/install.sh +3 -3
- package/karnel/tools/utils/fconv/README.md +41 -0
- package/karnel/tools/{dev → utils}/fconv/install.sh +3 -3
- package/karnel/tools/utils/filecheck/README.md +41 -0
- package/karnel/tools/{dev → utils}/filecheck/install.sh +3 -3
- package/karnel/tools/utils/httptmux/README.md +42 -0
- package/karnel/tools/{dev → utils}/httptmux/install.sh +0 -0
- package/karnel/tools/utils/notes/README.md +41 -0
- package/karnel/tools/{dev → utils}/notes/install.sh +3 -3
- package/karnel/tools/utils/passman/README.md +42 -0
- package/karnel/tools/{dev → utils}/passman/install.sh +3 -3
- package/karnel/tools/utils/qrcode/README.md +41 -0
- package/karnel/tools/utils/qrcode/install.sh +50 -0
- package/karnel/tools/utils/qrcode/qrcode.py +89 -0
- package/karnel/tools/utils/splash/README.md +41 -0
- package/karnel/tools/{dev → utils}/splash/install.sh +3 -3
- package/karnel/tools/utils/treex/README.md +41 -0
- package/karnel/tools/{dev → utils}/treex/install.sh +3 -3
- package/karnel/tools/utils/websites/README.md +41 -0
- package/karnel/tools/{dev → utils}/websites/install.sh +3 -3
- package/karnel/tools/utils/zork/README.md +43 -0
- package/karnel/tools/{dev → utils}/zork/install.sh +3 -3
- package/karnel/utils/banner.sh +8 -6
- package/karnel/utils/bootstrap.sh +1 -1
- package/karnel/utils/env.sh +16 -2
- package/karnel/utils/log.sh +0 -1
- 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 -13
- package/karnel/cli/commands/doctor/system.sh +0 -87
- 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
- /package/karnel/tools/{dev → utils}/applaunch/applaunch.py +0 -0
- /package/karnel/tools/{dev → utils}/fconv/fconv.py +0 -0
- /package/karnel/tools/{dev → utils}/filecheck/filecheck.py +0 -0
- /package/karnel/tools/{dev → utils}/notes/notes.py +0 -0
- /package/karnel/tools/{dev → utils}/passman/passman.py +0 -0
- /package/karnel/tools/{dev → utils}/splash/splash.py +0 -0
- /package/karnel/tools/{dev → utils}/treex/treex.py +0 -0
- /package/karnel/tools/{dev → utils}/websites/websites.py +0 -0
package/karnel/cli/karnel.sh
CHANGED
|
@@ -31,7 +31,7 @@ karnel_main() {
|
|
|
31
31
|
log_error "Command not found: $cmd"
|
|
32
32
|
echo
|
|
33
33
|
karnel_help
|
|
34
|
-
|
|
34
|
+
return 1
|
|
35
35
|
fi
|
|
36
36
|
|
|
37
37
|
local command_file="$KARNEL_PATH/cli/commands/$cmd.sh"
|
|
@@ -44,7 +44,7 @@ karnel_main() {
|
|
|
44
44
|
log_error "Command not found: $cmd"
|
|
45
45
|
echo
|
|
46
46
|
karnel_help
|
|
47
|
-
|
|
47
|
+
return 1
|
|
48
48
|
fi
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -57,29 +57,33 @@ karnel_help() {
|
|
|
57
57
|
separator_section "Available Commands"
|
|
58
58
|
echo
|
|
59
59
|
printf " ${D_CYAN}%-12s${NC} %s\n" "--version" "Show current version"
|
|
60
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "brain" "Second brain — save and search memories"
|
|
61
60
|
printf " ${D_CYAN}%-12s${NC} %s\n" "backup" "Backup all Termux configs + tools"
|
|
62
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
63
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "search" "Search tools and memories"
|
|
61
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "brain" "Second brain — save, search, and query memories"
|
|
64
62
|
printf " ${D_CYAN}%-12s${NC} %s\n" "cleanup" "Clean caches, logs, and temp files"
|
|
63
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "deploy" "Deploy projects to Vercel, Railway, Netlify"
|
|
64
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "doctor" "Run diagnostics (termux/code)"
|
|
65
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "doctor termux" "Full Termux environment diagnostics"
|
|
66
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "doctor code" "Analyze project code structure"
|
|
65
67
|
printf " ${D_CYAN}%-12s${NC} %s\n" "env" "Manage environment variables"
|
|
68
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "help" "Show this help screen"
|
|
69
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "ia" "AI agent manager — sessions, install, routes"
|
|
70
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "init" "Scaffold projects (Next, React, Nest, etc.)"
|
|
66
71
|
printf " ${D_CYAN}%-12s${NC} %s\n" "install" "Install modules and packages"
|
|
67
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
68
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
69
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "uninstall" "Remove installed modules"
|
|
70
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "reinstall" "Uninstall + install modules"
|
|
71
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "open" "Open documentation in browser"
|
|
72
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "list" "List available tools in modules"
|
|
72
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "list" "List available tools in a module"
|
|
73
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "open" "Open docs in browser for a module"
|
|
73
74
|
printf " ${D_CYAN}%-12s${NC} %s\n" "pg" "PostgreSQL database manager"
|
|
75
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "reinstall" "Uninstall + install a module"
|
|
76
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "restore" "Restore Termux from a backup"
|
|
77
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "robin" "Dark Web OSINT tool (Tor + LLM)"
|
|
78
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "search" "Search across all tools and memories"
|
|
79
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "show" "Show README/docs for a tool"
|
|
80
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "start" "Start services (code-server, etc.)"
|
|
74
81
|
printf " ${D_CYAN}%-12s${NC} %s\n" "status" "Quick system overview"
|
|
75
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
76
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
77
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
78
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "
|
|
79
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "init" "Configure existing projects"
|
|
80
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "start" "Start services (editor, etc.)"
|
|
82
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "uninstall" "Remove installed modules"
|
|
83
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "update" "Update modules or framework"
|
|
84
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "upgrade" "Upgrade Karnel framework itself"
|
|
85
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "version" "Show current version"
|
|
81
86
|
printf " ${D_CYAN}%-12s${NC} %s\n" "voice" "Speech-to-agent via microphone"
|
|
82
|
-
printf " ${D_CYAN}%-12s${NC} %s\n" "ia" "AI agent manager — sessions, install, routes"
|
|
83
87
|
echo
|
|
84
88
|
separator_section "Quick Start"
|
|
85
89
|
echo
|
|
@@ -93,17 +97,21 @@ karnel_help() {
|
|
|
93
97
|
echo
|
|
94
98
|
log_info "Install, update, reinstall, uninstall, list, show or open:"
|
|
95
99
|
echo
|
|
96
|
-
printf " ${D_GREEN}%-10s${NC} %s\n" "lang" "Node, Python, Perl, PHP, Rust, C/C++, Go"
|
|
97
|
-
printf " ${D_GREEN}%-10s${NC} %s\n" "db" "PostgreSQL, MariaDB, SQLite, MongoDB"
|
|
98
100
|
printf " ${D_GREEN}%-10s${NC} %s\n" "ai" "OpenCode, Gentle AI, Claude Code, etc."
|
|
101
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "auto" "Automation Tools (n8n)"
|
|
102
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "db" "PostgreSQL, MariaDB, SQLite, MongoDB"
|
|
103
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "deploy" "Vercel, Railway, Netlify CLIs"
|
|
104
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "dev" "GitHub CLI, wget, curl, fzf, jq, etc."
|
|
105
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "utils" "File Converter, Notes, QR Code, etc."
|
|
99
106
|
printf " ${D_GREEN}%-10s${NC} %s\n" "editor" "code-server (VS Code in browser)"
|
|
100
|
-
printf " ${D_GREEN}%-10s${NC} %s\n" "
|
|
107
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "games" "Buzz, CTF God, Detective, Tamagotchi, etc."
|
|
108
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "lang" "Node, Python, Perl, PHP, Rust, C/C++, Go"
|
|
101
109
|
printf " ${D_GREEN}%-10s${NC} %s\n" "npm" "Node.js global npm packages"
|
|
110
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "osint" "OSINT Tools (Robin — Dark Web + LLM)"
|
|
111
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "network" "Network tools (Dark Web, DedSec Network)"
|
|
102
112
|
printf " ${D_GREEN}%-10s${NC} %s\n" "shell" "ZSH + Oh My Zsh + 10 plugins"
|
|
103
113
|
printf " ${D_GREEN}%-10s${NC} %s\n" "ui" "Font, Cursor, Extra-keys, Banner"
|
|
104
|
-
printf " ${D_GREEN}%-10s${NC} %s\n" "
|
|
105
|
-
printf " ${D_GREEN}%-10s${NC} %s\n" "deploy" "Vercel, Railway, Netlify CLIs"
|
|
106
|
-
printf " ${D_GREEN}%-10s${NC} %s\n" "games" "Buzz, CTF God, Detective, Tamagotchi, etc."
|
|
114
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "voice" "Speech-to-agent via microphone"
|
|
107
115
|
|
|
108
116
|
echo
|
|
109
117
|
separator_section "Help"
|
|
@@ -193,9 +201,9 @@ _dialog_yesno() {
|
|
|
193
201
|
local title="$1"
|
|
194
202
|
local prompt="$2"
|
|
195
203
|
if [[ "$TUI_BIN" == "dialog" ]]; then
|
|
196
|
-
dialog --clear --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60
|
|
204
|
+
dialog --clear --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60 >/dev/tty 2>&1
|
|
197
205
|
else
|
|
198
|
-
whiptail --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60
|
|
206
|
+
whiptail --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60 >/dev/tty 2>&1
|
|
199
207
|
fi
|
|
200
208
|
return $?
|
|
201
209
|
}
|
|
@@ -223,6 +231,7 @@ _tui_main_menu() {
|
|
|
223
231
|
if [[ $exit_status -ne 0 ]] || [[ "$choice" == "exit" ]] || [[ -z "$choice" ]]; then
|
|
224
232
|
clear
|
|
225
233
|
source "$KARNEL_PATH/utils/banner.sh"
|
|
234
|
+
render_banner
|
|
226
235
|
break
|
|
227
236
|
fi
|
|
228
237
|
|
|
@@ -236,49 +245,49 @@ _tui_main_menu() {
|
|
|
236
245
|
clear
|
|
237
246
|
karnel_main "voice"
|
|
238
247
|
echo
|
|
239
|
-
read -p "Press Enter to return to menu..." temp
|
|
248
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
240
249
|
;;
|
|
241
250
|
ia)
|
|
242
251
|
clear
|
|
243
252
|
karnel_main "ia"
|
|
244
253
|
echo
|
|
245
|
-
read -p "Press Enter to return to menu..." temp
|
|
254
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
246
255
|
;;
|
|
247
256
|
doctor)
|
|
248
257
|
clear
|
|
249
258
|
karnel_main "doctor"
|
|
250
259
|
echo
|
|
251
|
-
read -p "Press Enter to return to menu..." temp
|
|
260
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
252
261
|
;;
|
|
253
262
|
cleanup)
|
|
254
263
|
clear
|
|
255
264
|
karnel_main "cleanup"
|
|
256
265
|
echo
|
|
257
|
-
read -p "Press Enter to return to menu..." temp
|
|
266
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
258
267
|
;;
|
|
259
268
|
status)
|
|
260
269
|
clear
|
|
261
270
|
karnel_main "status"
|
|
262
271
|
echo
|
|
263
|
-
read -p "Press Enter to return to menu..." temp
|
|
272
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
264
273
|
;;
|
|
265
274
|
upgrade)
|
|
266
275
|
clear
|
|
267
276
|
karnel_main "upgrade"
|
|
268
277
|
echo
|
|
269
|
-
read -p "Press Enter to return to menu..." temp
|
|
278
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
270
279
|
;;
|
|
271
280
|
update)
|
|
272
281
|
clear
|
|
273
282
|
karnel_main "update"
|
|
274
283
|
echo
|
|
275
|
-
read -p "Press Enter to return to menu..." temp
|
|
284
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
276
285
|
;;
|
|
277
286
|
help)
|
|
278
287
|
clear
|
|
279
288
|
karnel_help
|
|
280
289
|
echo
|
|
281
|
-
read -p "Press Enter to return to menu..." temp
|
|
290
|
+
read -r -p "Press Enter to return to menu..." temp
|
|
282
291
|
;;
|
|
283
292
|
esac
|
|
284
293
|
done
|
|
@@ -306,60 +315,60 @@ _tui_brain_menu() {
|
|
|
306
315
|
case "$sub_choice" in
|
|
307
316
|
ask)
|
|
308
317
|
local question
|
|
309
|
-
question=$(_dialog_input "Brain Ask" "Enter your question for the brain:")
|
|
310
|
-
if [[
|
|
318
|
+
question=$(_dialog_input "Brain Ask" "Enter your question for the brain:") || true
|
|
319
|
+
if [[ -n "$question" ]]; then
|
|
311
320
|
clear
|
|
312
321
|
karnel_main "brain" "ask" "$question"
|
|
313
322
|
echo
|
|
314
|
-
read -p "Press Enter to return..." temp
|
|
323
|
+
read -r -p "Press Enter to return..." temp
|
|
315
324
|
fi
|
|
316
325
|
;;
|
|
317
326
|
save)
|
|
318
327
|
clear
|
|
319
328
|
karnel_main "brain" "save"
|
|
320
329
|
echo
|
|
321
|
-
read -p "Press Enter to return..." temp
|
|
330
|
+
read -r -p "Press Enter to return..." temp
|
|
322
331
|
;;
|
|
323
332
|
search)
|
|
324
333
|
local query
|
|
325
334
|
query=$(_dialog_input "Search Memories" "Enter search query:")
|
|
326
|
-
if [[
|
|
335
|
+
if [[ -n "$query" ]]; then
|
|
327
336
|
clear
|
|
328
337
|
karnel_main "brain" "search" "$query"
|
|
329
338
|
echo
|
|
330
|
-
read -p "Press Enter to return..." temp
|
|
339
|
+
read -r -p "Press Enter to return..." temp
|
|
331
340
|
fi
|
|
332
341
|
;;
|
|
333
342
|
list)
|
|
334
343
|
clear
|
|
335
344
|
karnel_main "brain" "list"
|
|
336
345
|
echo
|
|
337
|
-
read -p "Press Enter to return..." temp
|
|
346
|
+
read -r -p "Press Enter to return..." temp
|
|
338
347
|
;;
|
|
339
348
|
init)
|
|
340
349
|
clear
|
|
341
350
|
karnel_main "brain" "init"
|
|
342
351
|
echo
|
|
343
|
-
read -p "Press Enter to return..." temp
|
|
352
|
+
read -r -p "Press Enter to return..." temp
|
|
344
353
|
;;
|
|
345
354
|
graph)
|
|
346
355
|
clear
|
|
347
356
|
karnel_main "brain" "graph"
|
|
348
357
|
echo
|
|
349
|
-
read -p "Press Enter to return..." temp
|
|
358
|
+
read -r -p "Press Enter to return..." temp
|
|
350
359
|
;;
|
|
351
360
|
sync)
|
|
352
361
|
clear
|
|
353
362
|
karnel_main "brain" "sync"
|
|
354
363
|
echo
|
|
355
|
-
read -p "Press Enter to return..." temp
|
|
364
|
+
read -r -p "Press Enter to return..." temp
|
|
356
365
|
;;
|
|
357
366
|
reset)
|
|
358
367
|
if _dialog_yesno "Reset Brain" "WARNING: This will delete ALL stored memories. Are you sure?"; then
|
|
359
368
|
clear
|
|
360
369
|
karnel_main "brain" "reset"
|
|
361
370
|
echo
|
|
362
|
-
read -p "Press Enter to return..." temp
|
|
371
|
+
read -r -p "Press Enter to return..." temp
|
|
363
372
|
fi
|
|
364
373
|
;;
|
|
365
374
|
esac
|
|
@@ -385,19 +394,19 @@ _tui_env_menu() {
|
|
|
385
394
|
clear
|
|
386
395
|
karnel_main "env" "set"
|
|
387
396
|
echo
|
|
388
|
-
read -p "Press Enter to return..." temp
|
|
397
|
+
read -r -p "Press Enter to return..." temp
|
|
389
398
|
;;
|
|
390
399
|
unset)
|
|
391
400
|
clear
|
|
392
401
|
karnel_main "env" "unset"
|
|
393
402
|
echo
|
|
394
|
-
read -p "Press Enter to return..." temp
|
|
403
|
+
read -r -p "Press Enter to return..." temp
|
|
395
404
|
;;
|
|
396
405
|
list)
|
|
397
406
|
clear
|
|
398
407
|
karnel_main "env" "ls"
|
|
399
408
|
echo
|
|
400
|
-
read -p "Press Enter to return..." temp
|
|
409
|
+
read -r -p "Press Enter to return..." temp
|
|
401
410
|
;;
|
|
402
411
|
esac
|
|
403
412
|
done
|
|
@@ -408,14 +417,20 @@ _tui_install_menu() {
|
|
|
408
417
|
local target
|
|
409
418
|
target=$(_dialog_menu "Install Modules" "Select target module to install:" \
|
|
410
419
|
"ai" "AI Tools (OpenCode, Claude, Ollama, etc.)" \
|
|
420
|
+
"auto" "Automation Tools (n8n)" \
|
|
411
421
|
"db" "Databases (PostgreSQL, MariaDB, SQLite, MongoDB)" \
|
|
412
|
-
"
|
|
413
|
-
"editor" "Code Editor (code-server)" \
|
|
422
|
+
"deploy" "Deploy CLIs (Vercel, Railway, Netlify)" \
|
|
414
423
|
"dev" "Development Tools (GitHub CLI, fzf, bat, etc.)" \
|
|
424
|
+
"editor" "Code Editor (code-server)" \
|
|
425
|
+
"games" "Games (Buzz, CTF God, Detective, etc.)" \
|
|
426
|
+
"lang" "Programming Languages (Node, Python, Go, Rust, etc.)" \
|
|
415
427
|
"npm" "Node.js Global npm Packages" \
|
|
428
|
+
"osint" "OSINT Tools (Robin — Dark Web + LLM)" \
|
|
429
|
+
"network" "Network Tools (Dark Web, DedSec Network)" \
|
|
430
|
+
"utils" "Utility Scripts (Fconv, Notes, QR Code)" \
|
|
416
431
|
"shell" "ZSH + Oh My Zsh + Plugins" \
|
|
417
432
|
"ui" "Termux UI (font, cursor, extra-keys, banner)" \
|
|
418
|
-
"
|
|
433
|
+
"voice" "Speech-to-Agent via microphone" \
|
|
419
434
|
"back" "Back to Main Menu")
|
|
420
435
|
|
|
421
436
|
local exit_status=$?
|
|
@@ -424,7 +439,7 @@ _tui_install_menu() {
|
|
|
424
439
|
fi
|
|
425
440
|
|
|
426
441
|
case "$target" in
|
|
427
|
-
ai|db|lang|dev|shell|ui)
|
|
442
|
+
ai|db|lang|dev|utils|network|shell|ui)
|
|
428
443
|
_tui_install_checklist "$target"
|
|
429
444
|
;;
|
|
430
445
|
*)
|
|
@@ -432,7 +447,7 @@ _tui_install_menu() {
|
|
|
432
447
|
clear
|
|
433
448
|
karnel_main "install" "$target"
|
|
434
449
|
echo
|
|
435
|
-
read -p "Press Enter to return..." temp
|
|
450
|
+
read -r -p "Press Enter to return..." temp
|
|
436
451
|
fi
|
|
437
452
|
;;
|
|
438
453
|
esac
|
|
@@ -446,6 +461,7 @@ _tui_install_checklist() {
|
|
|
446
461
|
case "$target" in
|
|
447
462
|
lang)
|
|
448
463
|
opts=(
|
|
464
|
+
"bun" "Bun (JS Runtime)" OFF
|
|
449
465
|
"nodejs" "Node.js LTS" OFF
|
|
450
466
|
"python" "Python" OFF
|
|
451
467
|
"perl" "Perl" OFF
|
|
@@ -524,6 +540,14 @@ _tui_install_checklist() {
|
|
|
524
540
|
"snyk" "Snyk" OFF
|
|
525
541
|
"httptmux" "Httptmux" OFF
|
|
526
542
|
"zork" "Zork" OFF
|
|
543
|
+
"fconv" "File Converter" OFF
|
|
544
|
+
"filecheck" "File Checker" OFF
|
|
545
|
+
"websites" "Websites Creator" OFF
|
|
546
|
+
"notes" "Smart Notes" OFF
|
|
547
|
+
"treex" "Tree Explorer" OFF
|
|
548
|
+
"passman" "Password Master" OFF
|
|
549
|
+
"applaunch" "App Launcher" OFF
|
|
550
|
+
"splash" "Loading Screen" OFF
|
|
527
551
|
)
|
|
528
552
|
;;
|
|
529
553
|
shell)
|
|
@@ -542,6 +566,27 @@ _tui_install_checklist() {
|
|
|
542
566
|
"banner" "Startup banner" OFF
|
|
543
567
|
)
|
|
544
568
|
;;
|
|
569
|
+
utils)
|
|
570
|
+
opts=(
|
|
571
|
+
"fconv" "File Converter" OFF
|
|
572
|
+
"filecheck" "File Checker" OFF
|
|
573
|
+
"websites" "Websites Creator" OFF
|
|
574
|
+
"notes" "Smart Notes" OFF
|
|
575
|
+
"treex" "Tree Explorer" OFF
|
|
576
|
+
"passman" "Password Master" OFF
|
|
577
|
+
"applaunch" "App Launcher" OFF
|
|
578
|
+
"splash" "Loading Screen" OFF
|
|
579
|
+
"httptmux" "HTTP API Client" OFF
|
|
580
|
+
"zork" "Zork Adventure Games" OFF
|
|
581
|
+
"qrcode" "QR Code Generator" OFF
|
|
582
|
+
)
|
|
583
|
+
;;
|
|
584
|
+
network)
|
|
585
|
+
opts=(
|
|
586
|
+
"dark" "Dark Web OSINT" OFF
|
|
587
|
+
"dedsec-network" "DedSec Network Toolkit" OFF
|
|
588
|
+
)
|
|
589
|
+
;;
|
|
545
590
|
esac
|
|
546
591
|
|
|
547
592
|
local selections
|
|
@@ -563,7 +608,7 @@ _tui_install_checklist() {
|
|
|
563
608
|
log_info "Running: karnel install $target ${clean_selections[*]}"
|
|
564
609
|
karnel_main "install" "$target" "${clean_selections[@]}"
|
|
565
610
|
echo
|
|
566
|
-
read -p "Press Enter to return..." temp
|
|
611
|
+
read -r -p "Press Enter to return..." temp
|
|
567
612
|
fi
|
|
568
613
|
fi
|
|
569
614
|
}
|
|
@@ -595,51 +640,50 @@ _tui_pg_menu() {
|
|
|
595
640
|
clear
|
|
596
641
|
karnel_main "pg" "$sub_choice"
|
|
597
642
|
echo
|
|
598
|
-
read -p "Press Enter to return..." temp
|
|
643
|
+
read -r -p "Press Enter to return..." temp
|
|
599
644
|
;;
|
|
600
645
|
create)
|
|
601
646
|
local db_name
|
|
602
|
-
db_name=$(_dialog_input "Create Database" "Enter
|
|
603
|
-
if [[
|
|
647
|
+
db_name=$(_dialog_input "Create Database" "Enter database name to create:") || true
|
|
648
|
+
if [[ -n "$db_name" ]]; then
|
|
604
649
|
clear
|
|
605
650
|
karnel_main "pg" "create" "$db_name"
|
|
606
651
|
echo
|
|
607
|
-
read -p "Press Enter to return..." temp
|
|
652
|
+
read -r -p "Press Enter to return..." temp
|
|
608
653
|
fi
|
|
609
654
|
;;
|
|
610
655
|
drop)
|
|
611
656
|
local db_name
|
|
612
|
-
db_name=$(_dialog_input "Drop Database" "Enter database name to drop:")
|
|
613
|
-
if [[
|
|
657
|
+
db_name=$(_dialog_input "Drop Database" "Enter database name to drop:") || true
|
|
658
|
+
if [[ -n "$db_name" ]]; then
|
|
614
659
|
if _dialog_yesno "Drop Database" "WARNING: This will permanently delete database '$db_name'. Are you sure?"; then
|
|
615
660
|
clear
|
|
616
661
|
karnel_main "pg" "drop" "$db_name"
|
|
617
662
|
echo
|
|
618
|
-
read -p "Press Enter to return..." temp
|
|
663
|
+
read -r -p "Press Enter to return..." temp
|
|
619
664
|
fi
|
|
620
665
|
fi
|
|
621
666
|
;;
|
|
622
667
|
backup)
|
|
623
668
|
local db_name
|
|
624
|
-
db_name=$(_dialog_input "Backup Database" "Enter database name to backup (leave empty for interactive):")
|
|
625
|
-
if [[ $? -eq 0 ]]; then
|
|
669
|
+
if db_name=$(_dialog_input "Backup Database" "Enter database name to backup (leave empty for interactive):"); then
|
|
626
670
|
clear
|
|
627
671
|
karnel_main "pg" "backup" "$db_name"
|
|
628
672
|
echo
|
|
629
|
-
read -p "Press Enter to return..." temp
|
|
673
|
+
read -r -p "Press Enter to return..." temp
|
|
630
674
|
fi
|
|
631
675
|
;;
|
|
632
676
|
restore)
|
|
633
677
|
clear
|
|
634
678
|
karnel_main "pg" "restore"
|
|
635
679
|
echo
|
|
636
|
-
read -p "Press Enter to return..." temp
|
|
680
|
+
read -r -p "Press Enter to return..." temp
|
|
637
681
|
;;
|
|
638
682
|
shell)
|
|
639
683
|
clear
|
|
640
684
|
karnel_main "pg" "shell"
|
|
641
685
|
echo
|
|
642
|
-
read -p "Press Enter to return..." temp
|
|
686
|
+
read -r -p "Press Enter to return..." temp
|
|
643
687
|
;;
|
|
644
688
|
esac
|
|
645
689
|
done
|
|
@@ -666,13 +710,14 @@ _tui_init_menu() {
|
|
|
666
710
|
clear
|
|
667
711
|
karnel_main "init" "$sub_choice"
|
|
668
712
|
echo
|
|
669
|
-
read -p "Press Enter to return..." temp
|
|
713
|
+
read -r -p "Press Enter to return..." temp
|
|
670
714
|
done
|
|
671
715
|
}
|
|
672
716
|
|
|
673
717
|
karnel_fallback_tui() {
|
|
674
718
|
clear
|
|
675
719
|
source "$KARNEL_PATH/utils/banner.sh"
|
|
720
|
+
render_banner
|
|
676
721
|
while true; do
|
|
677
722
|
echo
|
|
678
723
|
box "◈ KARNEL TUI MENU ◈"
|
|
@@ -693,7 +738,7 @@ karnel_fallback_tui() {
|
|
|
693
738
|
echo
|
|
694
739
|
|
|
695
740
|
local choice
|
|
696
|
-
read -p " Enter choice (1-11): " choice
|
|
741
|
+
read -r -p " Enter choice (1-11): " choice
|
|
697
742
|
|
|
698
743
|
case "$choice" in
|
|
699
744
|
1) karnel_main "brain" ;;
|
|
@@ -710,8 +755,9 @@ karnel_fallback_tui() {
|
|
|
710
755
|
*) log_warn "Invalid option. Please try again." ;;
|
|
711
756
|
esac
|
|
712
757
|
echo
|
|
713
|
-
read -p " Press Enter to return to menu..." temp
|
|
758
|
+
read -r -p " Press Enter to return to menu..." temp
|
|
714
759
|
clear
|
|
715
760
|
source "$KARNEL_PATH/utils/banner.sh"
|
|
761
|
+
render_banner
|
|
716
762
|
done
|
|
717
763
|
}
|
package/karnel/modules/ai.sh
CHANGED
|
@@ -82,8 +82,13 @@ uninstall_ai() {
|
|
|
82
82
|
|
|
83
83
|
log_info "Uninstalling AI tools..."
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
local rc=0
|
|
86
|
+
_uninstall_ai_tools_wrapper || rc=$?
|
|
87
|
+
if [ "$rc" -eq 0 ]; then
|
|
88
|
+
log_success "AI tools uninstalled"
|
|
89
|
+
else
|
|
90
|
+
log_warn "AI tools uninstalled with $rc failure(s)"
|
|
91
|
+
fi
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
_uninstall_ai_tools_wrapper() {
|
|
@@ -99,8 +104,13 @@ update_ai() {
|
|
|
99
104
|
|
|
100
105
|
log_info "Updating AI tools..."
|
|
101
106
|
|
|
102
|
-
|
|
103
|
-
|
|
107
|
+
local rc=0
|
|
108
|
+
_update_ai_tools_wrapper || rc=$?
|
|
109
|
+
if [ "$rc" -eq 0 ]; then
|
|
110
|
+
log_success "AI tools updated"
|
|
111
|
+
else
|
|
112
|
+
log_warn "AI tools updated with $rc failure(s)"
|
|
113
|
+
fi
|
|
104
114
|
}
|
|
105
115
|
|
|
106
116
|
_update_ai_tools_wrapper() {
|
|
@@ -117,8 +127,9 @@ reinstall_ai() {
|
|
|
117
127
|
log_info "Reinstalling AI tools..."
|
|
118
128
|
echo
|
|
119
129
|
|
|
130
|
+
local rc=0
|
|
120
131
|
import "@/tools/ai/all"
|
|
121
|
-
reinstall_all_ai_tools
|
|
132
|
+
reinstall_all_ai_tools || rc=$?
|
|
122
133
|
echo
|
|
123
134
|
log_info "Reinstalled tools:"
|
|
124
135
|
echo
|
|
@@ -130,6 +141,10 @@ reinstall_ai() {
|
|
|
130
141
|
done
|
|
131
142
|
echo
|
|
132
143
|
|
|
133
|
-
|
|
144
|
+
if [ "$rc" -eq 0 ]; then
|
|
145
|
+
log_success "AI tools reinstalled successfully"
|
|
146
|
+
else
|
|
147
|
+
log_warn "AI tools reinstalled with $rc failure(s)"
|
|
148
|
+
fi
|
|
134
149
|
echo
|
|
135
150
|
}
|
package/karnel/modules/deploy.sh
CHANGED
|
@@ -29,6 +29,10 @@ _install_deploy_wrapper() {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
uninstall_deploy() {
|
|
32
|
+
if ! command -v vercel &>/dev/null && ! command -v railway &>/dev/null && ! command -v netlify &>/dev/null; then
|
|
33
|
+
log_info "Deploy CLIs are not installed"
|
|
34
|
+
return 0
|
|
35
|
+
fi
|
|
32
36
|
separator
|
|
33
37
|
box "Uninstalling Deploy CLIs"
|
|
34
38
|
separator
|
package/karnel/modules/dev.sh
CHANGED
|
@@ -24,28 +24,7 @@ install_dev() {
|
|
|
24
24
|
fi
|
|
25
25
|
separator
|
|
26
26
|
echo
|
|
27
|
-
|
|
28
|
-
list_item "Wget"
|
|
29
|
-
list_item "Curl"
|
|
30
|
-
list_item "LSD (ls replacement)"
|
|
31
|
-
list_item "Bat (cat replacement)"
|
|
32
|
-
list_item "Proot (chroot alternative)"
|
|
33
|
-
list_item "Ncurses Utils"
|
|
34
|
-
list_item "Tmate (terminal sharing)"
|
|
35
|
-
list_item "Cloudflared (Cloudflare Tunnel)"
|
|
36
|
-
list_item "Translate Shell"
|
|
37
|
-
list_item "html2text (HTML to text converter)"
|
|
38
|
-
list_item "jq (JSON processor)"
|
|
39
|
-
list_item "bc (calculator)"
|
|
40
|
-
list_item "Tree (directory listing)"
|
|
41
|
-
list_item "Fzf (fuzzy finder)"
|
|
42
|
-
list_item "ImageMagick (image manipulation)"
|
|
43
|
-
list_item "Shfmt (shell script formatter)"
|
|
44
|
-
list_item "Make (build automation)"
|
|
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)"
|
|
27
|
+
_show_dev_summary
|
|
49
28
|
echo
|
|
50
29
|
}
|
|
51
30
|
|
|
@@ -122,33 +101,27 @@ reinstall_dev() {
|
|
|
122
101
|
fi
|
|
123
102
|
separator
|
|
124
103
|
echo
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
list_item "Curl"
|
|
128
|
-
list_item "LSD (ls replacement)"
|
|
129
|
-
list_item "Bat (cat replacement)"
|
|
130
|
-
list_item "Proot (chroot alternative)"
|
|
131
|
-
list_item "Ncurses Utils"
|
|
132
|
-
list_item "Tmate (terminal sharing)"
|
|
133
|
-
list_item "Cloudflared (Cloudflare Tunnel)"
|
|
134
|
-
list_item "Translate Shell"
|
|
135
|
-
list_item "html2text (HTML to text converter)"
|
|
136
|
-
list_item "jq (JSON processor)"
|
|
137
|
-
list_item "bc (calculator)"
|
|
138
|
-
list_item "Tree (directory listing)"
|
|
139
|
-
list_item "Fzf (fuzzy finder)"
|
|
140
|
-
list_item "ImageMagick (image manipulation)"
|
|
141
|
-
list_item "Shfmt (shell script formatter)"
|
|
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
|
|
104
|
+
_show_dev_summary
|
|
105
|
+
echo
|
|
148
106
|
}
|
|
149
107
|
|
|
150
108
|
_reinstall_dev_wrapper() {
|
|
151
109
|
import "@/tools/dev/all"
|
|
152
110
|
reinstall_all_dev
|
|
153
111
|
return $?
|
|
154
|
-
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
_show_dev_summary() {
|
|
115
|
+
local idx=0
|
|
116
|
+
for tool in "${TOOLS_PACKAGES[@]}"; do
|
|
117
|
+
local display="${TOOLS_DISPLAY[$idx]:-$tool}"
|
|
118
|
+
local result="${_INSTALL_RESULTS[$tool]:-}"
|
|
119
|
+
case "$result" in
|
|
120
|
+
0) list_item_check success "$display" ;;
|
|
121
|
+
2) list_item_check pending "$display" ;;
|
|
122
|
+
1) list_item_check fail "$display" ;;
|
|
123
|
+
*) list_item "$display" ;;
|
|
124
|
+
esac
|
|
125
|
+
((idx++))
|
|
126
|
+
done
|
|
127
|
+
}
|