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