karnel-termux 0.0.1
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/LICENSE +21 -0
- package/README.md +454 -0
- package/install.sh +272 -0
- package/karnel/bin/karnel +77 -0
- package/karnel/cli/commands/brain.sh +1553 -0
- package/karnel/cli/commands/cleanup.sh +66 -0
- package/karnel/cli/commands/doctor.sh +1528 -0
- package/karnel/cli/commands/env.sh +233 -0
- package/karnel/cli/commands/help.sh +8 -0
- package/karnel/cli/commands/ia.sh +502 -0
- package/karnel/cli/commands/init.sh +1274 -0
- package/karnel/cli/commands/install.sh +718 -0
- package/karnel/cli/commands/list.sh +399 -0
- package/karnel/cli/commands/open.sh +106 -0
- package/karnel/cli/commands/pg.sh +719 -0
- package/karnel/cli/commands/reinstall.sh +663 -0
- package/karnel/cli/commands/show.sh +90 -0
- package/karnel/cli/commands/start.sh +54 -0
- package/karnel/cli/commands/status.sh +96 -0
- package/karnel/cli/commands/uninstall.sh +668 -0
- package/karnel/cli/commands/update.sh +723 -0
- package/karnel/cli/commands/upgrade.sh +40 -0
- package/karnel/cli/commands/version.sh +3 -0
- package/karnel/cli/commands/voice.sh +230 -0
- package/karnel/cli/karnel.sh +706 -0
- package/karnel/modules/ai.sh +135 -0
- package/karnel/modules/auto.sh +114 -0
- package/karnel/modules/db.sh +132 -0
- package/karnel/modules/deploy.sh +74 -0
- package/karnel/modules/dev.sh +148 -0
- package/karnel/modules/editor.sh +115 -0
- package/karnel/modules/lang.sh +124 -0
- package/karnel/modules/npm.sh +146 -0
- package/karnel/modules/shell.sh +338 -0
- package/karnel/modules/ui.sh +139 -0
- package/karnel/modules/voice.sh +118 -0
- package/karnel/tools/ai/all.sh +209 -0
- package/karnel/tools/ai/antigravity-cli/README.md +45 -0
- package/karnel/tools/ai/antigravity-cli/bin/agy +28 -0
- package/karnel/tools/ai/antigravity-cli/helper/agy_helper.c +39 -0
- package/karnel/tools/ai/antigravity-cli/install.sh +469 -0
- package/karnel/tools/ai/claude-code/README.md +45 -0
- package/karnel/tools/ai/claude-code/bin/claude +29 -0
- package/karnel/tools/ai/claude-code/helper/claude_helper.c +42 -0
- package/karnel/tools/ai/claude-code/install.sh +278 -0
- package/karnel/tools/ai/cline/install.sh +160 -0
- package/karnel/tools/ai/codegraph/README.md +43 -0
- package/karnel/tools/ai/codegraph/bin/codegraph +5 -0
- package/karnel/tools/ai/codegraph/install.sh +160 -0
- package/karnel/tools/ai/codex/README.md +44 -0
- package/karnel/tools/ai/codex/install.sh +104 -0
- package/karnel/tools/ai/command-code/README.md +62 -0
- package/karnel/tools/ai/command-code/install.sh +136 -0
- package/karnel/tools/ai/crush/README.md +17 -0
- package/karnel/tools/ai/crush/install.sh +89 -0
- package/karnel/tools/ai/ctx7/README.md +26 -0
- package/karnel/tools/ai/ctx7/install.sh +61 -0
- package/karnel/tools/ai/engram/README.md +44 -0
- package/karnel/tools/ai/engram/install.sh +127 -0
- package/karnel/tools/ai/freebuff/README.md +52 -0
- package/karnel/tools/ai/freebuff/bin/freebuff +28 -0
- package/karnel/tools/ai/freebuff/helper/freebuff_helper.c +47 -0
- package/karnel/tools/ai/freebuff/install.sh +303 -0
- package/karnel/tools/ai/gemini-cli/README.md +46 -0
- package/karnel/tools/ai/gemini-cli/install.sh +111 -0
- package/karnel/tools/ai/gentle-ai/README.md +42 -0
- package/karnel/tools/ai/gentle-ai/install.sh +253 -0
- package/karnel/tools/ai/gentle-ai/termux-patches.go +256 -0
- package/karnel/tools/ai/gga/README.md +49 -0
- package/karnel/tools/ai/gga/install.sh +134 -0
- package/karnel/tools/ai/hermes-agent/README.md +50 -0
- package/karnel/tools/ai/hermes-agent/install.sh +120 -0
- package/karnel/tools/ai/kilocode-cli/README.md +45 -0
- package/karnel/tools/ai/kilocode-cli/bin/kilocode +21 -0
- package/karnel/tools/ai/kilocode-cli/helper/kilocode_helper.c +47 -0
- package/karnel/tools/ai/kilocode-cli/install.sh +179 -0
- package/karnel/tools/ai/kimchi-code/README.md +53 -0
- package/karnel/tools/ai/kimchi-code/install.sh +221 -0
- package/karnel/tools/ai/kimi-code/README.md +45 -0
- package/karnel/tools/ai/kimi-code/install.sh +111 -0
- package/karnel/tools/ai/kiro/README.md +17 -0
- package/karnel/tools/ai/kiro/install.sh +134 -0
- package/karnel/tools/ai/mimocode/README.md +43 -0
- package/karnel/tools/ai/mimocode/bin/mimo +28 -0
- package/karnel/tools/ai/mimocode/helper/mimocode_helper.c +47 -0
- package/karnel/tools/ai/mimocode/install.sh +287 -0
- package/karnel/tools/ai/minimax-cli/README.md +45 -0
- package/karnel/tools/ai/minimax-cli/install.sh +111 -0
- package/karnel/tools/ai/mistral-vibe/README.md +46 -0
- package/karnel/tools/ai/mistral-vibe/install.sh +119 -0
- package/karnel/tools/ai/odysseus/README.md +35 -0
- package/karnel/tools/ai/odysseus/install.sh +198 -0
- package/karnel/tools/ai/ollama/README.md +44 -0
- package/karnel/tools/ai/ollama/install.sh +78 -0
- package/karnel/tools/ai/omni-route/README.md +111 -0
- package/karnel/tools/ai/omni-route/install.sh +165 -0
- package/karnel/tools/ai/openclaude/README.md +46 -0
- package/karnel/tools/ai/openclaude/install.sh +110 -0
- package/karnel/tools/ai/openclaw/README.md +47 -0
- package/karnel/tools/ai/openclaw/install.sh +112 -0
- package/karnel/tools/ai/opencode/README.md +51 -0
- package/karnel/tools/ai/opencode/bin/opencode +28 -0
- package/karnel/tools/ai/opencode/helper/opencode_helper.c +57 -0
- package/karnel/tools/ai/opencode/install.sh +290 -0
- package/karnel/tools/ai/openspec/README.md +34 -0
- package/karnel/tools/ai/openspec/install.sh +61 -0
- package/karnel/tools/ai/pi/README.md +46 -0
- package/karnel/tools/ai/pi/install.sh +104 -0
- package/karnel/tools/ai/qwen-code/README.md +45 -0
- package/karnel/tools/ai/qwen-code/install.sh +111 -0
- package/karnel/tools/auto/all.sh +57 -0
- package/karnel/tools/auto/n8n/README.md +47 -0
- package/karnel/tools/auto/n8n/install.sh +102 -0
- package/karnel/tools/db/all.sh +61 -0
- package/karnel/tools/db/mariadb/README.md +43 -0
- package/karnel/tools/db/mariadb/install.sh +65 -0
- package/karnel/tools/db/mongodb/README.md +42 -0
- package/karnel/tools/db/mongodb/install.sh +73 -0
- package/karnel/tools/db/postgresql/README.md +45 -0
- package/karnel/tools/db/postgresql/install.sh +65 -0
- package/karnel/tools/db/redis/README.md +46 -0
- package/karnel/tools/db/redis/install.sh +64 -0
- package/karnel/tools/db/sqlite/README.md +44 -0
- package/karnel/tools/db/sqlite/install.sh +65 -0
- package/karnel/tools/deploy/all.sh +43 -0
- package/karnel/tools/deploy/netlify/install.sh +41 -0
- package/karnel/tools/deploy/railway/install.sh +109 -0
- package/karnel/tools/deploy/vercel/install.sh +43 -0
- package/karnel/tools/dev/all.sh +77 -0
- package/karnel/tools/dev/bat/README.md +44 -0
- package/karnel/tools/dev/bat/install.sh +82 -0
- package/karnel/tools/dev/bc/README.md +44 -0
- package/karnel/tools/dev/bc/install.sh +82 -0
- package/karnel/tools/dev/cloudflared/README.md +43 -0
- package/karnel/tools/dev/cloudflared/install.sh +82 -0
- package/karnel/tools/dev/curl/README.md +43 -0
- package/karnel/tools/dev/curl/install.sh +82 -0
- package/karnel/tools/dev/fzf/README.md +44 -0
- package/karnel/tools/dev/fzf/install.sh +82 -0
- package/karnel/tools/dev/gh/README.md +43 -0
- package/karnel/tools/dev/gh/install.sh +82 -0
- package/karnel/tools/dev/html2text/README.md +44 -0
- package/karnel/tools/dev/html2text/install.sh +82 -0
- package/karnel/tools/dev/imagemagick/README.md +44 -0
- package/karnel/tools/dev/imagemagick/install.sh +82 -0
- package/karnel/tools/dev/jq/README.md +44 -0
- package/karnel/tools/dev/jq/install.sh +82 -0
- package/karnel/tools/dev/lsd/README.md +44 -0
- package/karnel/tools/dev/lsd/install.sh +82 -0
- package/karnel/tools/dev/make/README.md +44 -0
- package/karnel/tools/dev/make/install.sh +82 -0
- package/karnel/tools/dev/ncurses/README.md +42 -0
- package/karnel/tools/dev/ncurses/install.sh +82 -0
- package/karnel/tools/dev/openssh/README.md +43 -0
- package/karnel/tools/dev/openssh/install.sh +75 -0
- package/karnel/tools/dev/proot/README.md +43 -0
- package/karnel/tools/dev/proot/install.sh +82 -0
- package/karnel/tools/dev/shfmt/README.md +44 -0
- package/karnel/tools/dev/shfmt/install.sh +82 -0
- package/karnel/tools/dev/tmate/README.md +44 -0
- package/karnel/tools/dev/tmate/install.sh +82 -0
- package/karnel/tools/dev/tmux/README.md +43 -0
- package/karnel/tools/dev/tmux/install.sh +75 -0
- package/karnel/tools/dev/translate/README.md +44 -0
- package/karnel/tools/dev/translate/install.sh +82 -0
- package/karnel/tools/dev/tree/README.md +44 -0
- package/karnel/tools/dev/tree/install.sh +82 -0
- package/karnel/tools/dev/udocker/README.md +44 -0
- package/karnel/tools/dev/udocker/install.sh +82 -0
- package/karnel/tools/dev/wget/README.md +44 -0
- package/karnel/tools/dev/wget/install.sh +82 -0
- package/karnel/tools/editor/all.sh +59 -0
- package/karnel/tools/editor/code-server/README.md +42 -0
- package/karnel/tools/editor/code-server/install.sh +74 -0
- package/karnel/tools/editor/neovim/README.md +43 -0
- package/karnel/tools/editor/neovim/install.sh +64 -0
- package/karnel/tools/editor/nvchad/README.md +45 -0
- package/karnel/tools/editor/nvchad/install.sh +105 -0
- package/karnel/tools/lang/all.sh +63 -0
- package/karnel/tools/lang/clang/README.md +43 -0
- package/karnel/tools/lang/clang/install.sh +79 -0
- package/karnel/tools/lang/golang/README.md +43 -0
- package/karnel/tools/lang/golang/install.sh +79 -0
- package/karnel/tools/lang/nodejs/README.md +43 -0
- package/karnel/tools/lang/nodejs/install.sh +79 -0
- package/karnel/tools/lang/perl/README.md +43 -0
- package/karnel/tools/lang/perl/install.sh +79 -0
- package/karnel/tools/lang/php/README.md +43 -0
- package/karnel/tools/lang/php/install.sh +79 -0
- package/karnel/tools/lang/python/README.md +43 -0
- package/karnel/tools/lang/python/install.sh +79 -0
- package/karnel/tools/lang/rust/README.md +43 -0
- package/karnel/tools/lang/rust/install.sh +79 -0
- package/karnel/tools/npm/all.sh +90 -0
- package/karnel/tools/npm/live-server/README.md +43 -0
- package/karnel/tools/npm/live-server/install.sh +96 -0
- package/karnel/tools/npm/localtunnel/README.md +43 -0
- package/karnel/tools/npm/localtunnel/install.sh +112 -0
- package/karnel/tools/npm/markserv/README.md +43 -0
- package/karnel/tools/npm/markserv/install.sh +95 -0
- package/karnel/tools/npm/ncu/README.md +43 -0
- package/karnel/tools/npm/ncu/install.sh +95 -0
- package/karnel/tools/npm/nestjs/README.md +43 -0
- package/karnel/tools/npm/nestjs/install.sh +95 -0
- package/karnel/tools/npm/ngrok/README.md +44 -0
- package/karnel/tools/npm/ngrok/install.sh +95 -0
- package/karnel/tools/npm/prettier/README.md +43 -0
- package/karnel/tools/npm/prettier/install.sh +95 -0
- package/karnel/tools/npm/psqlformat/README.md +43 -0
- package/karnel/tools/npm/psqlformat/install.sh +95 -0
- package/karnel/tools/npm/turbopack/README.md +8 -0
- package/karnel/tools/npm/turbopack/install.sh +42 -0
- package/karnel/tools/npm/typescript/README.md +43 -0
- package/karnel/tools/npm/typescript/install.sh +95 -0
- package/karnel/tools/npm/vercel/README.md +43 -0
- package/karnel/tools/npm/vercel/install.sh +95 -0
- package/karnel/tools/shell/all.sh +67 -0
- package/karnel/tools/shell/better-npm/README.md +43 -0
- package/karnel/tools/shell/better-npm/install.sh +85 -0
- package/karnel/tools/shell/fzf-tab/README.md +44 -0
- package/karnel/tools/shell/fzf-tab/install.sh +85 -0
- package/karnel/tools/shell/history-substring/README.md +43 -0
- package/karnel/tools/shell/history-substring/install.sh +85 -0
- package/karnel/tools/shell/powerlevel10k/README.md +43 -0
- package/karnel/tools/shell/powerlevel10k/install.sh +85 -0
- package/karnel/tools/shell/you-should-use/README.md +43 -0
- package/karnel/tools/shell/you-should-use/install.sh +85 -0
- package/karnel/tools/shell/zsh-autopair/README.md +44 -0
- package/karnel/tools/shell/zsh-autopair/install.sh +85 -0
- package/karnel/tools/shell/zsh-autosuggestions/README.md +43 -0
- package/karnel/tools/shell/zsh-autosuggestions/install.sh +85 -0
- package/karnel/tools/shell/zsh-completions/README.md +43 -0
- package/karnel/tools/shell/zsh-completions/install.sh +85 -0
- package/karnel/tools/shell/zsh-defer/README.md +43 -0
- package/karnel/tools/shell/zsh-defer/install.sh +85 -0
- package/karnel/tools/shell/zsh-syntax-highlighting/README.md +43 -0
- package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +72 -0
- package/karnel/tools/ui/all.sh +61 -0
- package/karnel/tools/ui/banner/README.md +42 -0
- package/karnel/tools/ui/banner/install.sh +160 -0
- package/karnel/tools/ui/cursor/README.md +42 -0
- package/karnel/tools/ui/cursor/install.sh +58 -0
- package/karnel/tools/ui/extra-keys/README.md +43 -0
- package/karnel/tools/ui/extra-keys/install.sh +62 -0
- package/karnel/tools/ui/font/README.md +43 -0
- package/karnel/tools/ui/font/install.sh +63 -0
- package/karnel/tools/voice/all.sh +27 -0
- package/karnel/tools/voice/install.sh +10 -0
- package/karnel/tools/voice/uninstall.sh +8 -0
- package/karnel/utils/banner.sh +492 -0
- package/karnel/utils/bootstrap.sh +25 -0
- package/karnel/utils/colors.sh +33 -0
- package/karnel/utils/dialogrc +30 -0
- package/karnel/utils/env.sh +53 -0
- package/karnel/utils/log.sh +567 -0
- package/karnel/utils/version.sh +205 -0
- package/package.json +42 -0
- package/scripts/npm-install.js +60 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$KARNEL_CACHE/install_ai.log"
|
|
7
|
+
|
|
8
|
+
install_ai() {
|
|
9
|
+
separator
|
|
10
|
+
box "Installing AI Tools"
|
|
11
|
+
separator
|
|
12
|
+
echo
|
|
13
|
+
|
|
14
|
+
log_info "Installing AI tools..."
|
|
15
|
+
echo
|
|
16
|
+
log_info "☕ Grab a coffee! This process typically takes 1h-2h hours."
|
|
17
|
+
log_info " Don't worry, it's normal for this to take a while..."
|
|
18
|
+
echo
|
|
19
|
+
|
|
20
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
21
|
+
|
|
22
|
+
# Captura o exit code do instalador batch
|
|
23
|
+
local install_rc=0
|
|
24
|
+
_install_ai_tools_wrapper || install_rc=$?
|
|
25
|
+
|
|
26
|
+
separator
|
|
27
|
+
|
|
28
|
+
if [ "$install_rc" -eq 0 ]; then
|
|
29
|
+
log_success "AI tools installed successfully"
|
|
30
|
+
else
|
|
31
|
+
log_warn "AI tools installed with $install_rc failure(s)"
|
|
32
|
+
log_info "Check the details above for which tools failed"
|
|
33
|
+
log_info "Run ${D_CYAN}karnel doctor${NC} for system diagnostics"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
echo
|
|
37
|
+
log_info "Tools installed and their commands:"
|
|
38
|
+
echo
|
|
39
|
+
|
|
40
|
+
# Mostra apenas ferramentas que foram realmente instaladas (command -v)
|
|
41
|
+
local _reg_entry _id _name _bins
|
|
42
|
+
for _reg_entry in "${AI_TOOLS_REGISTRY[@]}"; do
|
|
43
|
+
IFS=':' read -r _id _name _bins <<< "$_reg_entry"
|
|
44
|
+
# Pega o primeiro binario da lista (separado por virgula)
|
|
45
|
+
local _first_bin="${_bins%%,*}"
|
|
46
|
+
if command -v "$_first_bin" &>/dev/null; then
|
|
47
|
+
list_item "$_name ${GRAY}(${D_GREEN}$_first_bin${GRAY})"
|
|
48
|
+
fi
|
|
49
|
+
done
|
|
50
|
+
|
|
51
|
+
echo
|
|
52
|
+
return $install_rc
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_install_ai_tools_wrapper() {
|
|
56
|
+
import "@/tools/ai/all"
|
|
57
|
+
install_all_ai_tools
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
uninstall_ai() {
|
|
61
|
+
import "@/tools/ai/all"
|
|
62
|
+
|
|
63
|
+
# Verifica se alguma ferramenta AI está instalada via AI_TOOLS_REGISTRY
|
|
64
|
+
local found=false
|
|
65
|
+
local _reg_entry _id _name _bins
|
|
66
|
+
for _reg_entry in "${AI_TOOLS_REGISTRY[@]}"; do
|
|
67
|
+
IFS=':' read -r _id _name _bins <<< "$_reg_entry"
|
|
68
|
+
local _first_bin="${_bins%%,*}"
|
|
69
|
+
if command -v "$_first_bin" &>/dev/null; then
|
|
70
|
+
found=true
|
|
71
|
+
break
|
|
72
|
+
fi
|
|
73
|
+
done
|
|
74
|
+
if [[ "$found" == "false" ]]; then
|
|
75
|
+
log_info "AI Tools are not installed"
|
|
76
|
+
return 0
|
|
77
|
+
fi
|
|
78
|
+
separator
|
|
79
|
+
box "Uninstalling AI Tools"
|
|
80
|
+
separator
|
|
81
|
+
echo
|
|
82
|
+
|
|
83
|
+
log_info "Uninstalling AI tools..."
|
|
84
|
+
|
|
85
|
+
_uninstall_ai_tools_wrapper
|
|
86
|
+
log_success "AI tools uninstalled"
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
_uninstall_ai_tools_wrapper() {
|
|
90
|
+
import "@/tools/ai/all"
|
|
91
|
+
uninstall_all_ai_tools
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
update_ai() {
|
|
95
|
+
separator
|
|
96
|
+
box "Updating AI Tools"
|
|
97
|
+
separator
|
|
98
|
+
echo
|
|
99
|
+
|
|
100
|
+
log_info "Updating AI tools..."
|
|
101
|
+
|
|
102
|
+
_update_ai_tools_wrapper
|
|
103
|
+
log_success "AI tools updated"
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
_update_ai_tools_wrapper() {
|
|
107
|
+
import "@/tools/ai/all"
|
|
108
|
+
update_all_ai_tools
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
reinstall_ai() {
|
|
112
|
+
separator
|
|
113
|
+
box "Reinstalling AI Tools"
|
|
114
|
+
separator
|
|
115
|
+
echo
|
|
116
|
+
|
|
117
|
+
log_info "Reinstalling AI tools..."
|
|
118
|
+
echo
|
|
119
|
+
|
|
120
|
+
import "@/tools/ai/all"
|
|
121
|
+
reinstall_all_ai_tools
|
|
122
|
+
echo
|
|
123
|
+
log_info "Reinstalled tools:"
|
|
124
|
+
echo
|
|
125
|
+
|
|
126
|
+
local _reg_entry _id _name _bins
|
|
127
|
+
for _reg_entry in "${AI_TOOLS_REGISTRY[@]}"; do
|
|
128
|
+
IFS=':' read -r _id _name _bins <<< "$_reg_entry"
|
|
129
|
+
list_item "$_name"
|
|
130
|
+
done
|
|
131
|
+
echo
|
|
132
|
+
|
|
133
|
+
log_success "AI tools reinstalled successfully"
|
|
134
|
+
echo
|
|
135
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$KARNEL_CACHE/install_auto.log"
|
|
7
|
+
|
|
8
|
+
install_auto() {
|
|
9
|
+
separator
|
|
10
|
+
box "Installing Automation Tools"
|
|
11
|
+
separator
|
|
12
|
+
echo
|
|
13
|
+
|
|
14
|
+
log_info "Installing Automation Tools..."
|
|
15
|
+
echo
|
|
16
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
17
|
+
|
|
18
|
+
local rc=0
|
|
19
|
+
_install_auto_wrapper || rc=$?
|
|
20
|
+
if [ "$rc" -eq 0 ]; then
|
|
21
|
+
log_success "Automation Tools installed successfully"
|
|
22
|
+
else
|
|
23
|
+
log_warn "$rc automation tool(s) failed to install"
|
|
24
|
+
fi
|
|
25
|
+
separator
|
|
26
|
+
echo
|
|
27
|
+
list_item "n8n"
|
|
28
|
+
echo
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
_install_auto_wrapper() {
|
|
32
|
+
import "@/tools/auto/all"
|
|
33
|
+
install_all_auto_tools
|
|
34
|
+
return $?
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
uninstall_auto() {
|
|
38
|
+
if ! command -v n8n &>/dev/null; then
|
|
39
|
+
log_info "Automation Tools are not installed"
|
|
40
|
+
return 0
|
|
41
|
+
fi
|
|
42
|
+
separator
|
|
43
|
+
box "Uninstalling Automation Tools"
|
|
44
|
+
separator
|
|
45
|
+
echo
|
|
46
|
+
|
|
47
|
+
log_info "Uninstalling Automation Tools..."
|
|
48
|
+
|
|
49
|
+
local rc=0
|
|
50
|
+
_uninstall_auto_wrapper || rc=$?
|
|
51
|
+
if [ "$rc" -eq 0 ]; then
|
|
52
|
+
log_success "Automation Tools uninstalled"
|
|
53
|
+
else
|
|
54
|
+
log_warn "$rc automation tool(s) failed to uninstall"
|
|
55
|
+
fi
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
_uninstall_auto_wrapper() {
|
|
59
|
+
import "@/tools/auto/all"
|
|
60
|
+
uninstall_all_auto_tools
|
|
61
|
+
return $?
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
update_auto() {
|
|
65
|
+
separator
|
|
66
|
+
box "Updating Automation Tools"
|
|
67
|
+
separator
|
|
68
|
+
echo
|
|
69
|
+
|
|
70
|
+
log_info "Updating Automation Tools..."
|
|
71
|
+
|
|
72
|
+
local rc=0
|
|
73
|
+
_update_auto_wrapper || rc=$?
|
|
74
|
+
if [ "$rc" -eq 0 ]; then
|
|
75
|
+
log_success "Automation Tools updated"
|
|
76
|
+
else
|
|
77
|
+
log_warn "$rc automation tool(s) failed to update"
|
|
78
|
+
fi
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
_update_auto_wrapper() {
|
|
82
|
+
import "@/tools/auto/all"
|
|
83
|
+
update_all_auto_tools
|
|
84
|
+
return $?
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
reinstall_auto() {
|
|
88
|
+
separator
|
|
89
|
+
box "Reinstalling Automation Tools"
|
|
90
|
+
separator
|
|
91
|
+
echo
|
|
92
|
+
|
|
93
|
+
log_info "Reinstalling Automation Tools..."
|
|
94
|
+
echo
|
|
95
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
96
|
+
|
|
97
|
+
local rc=0
|
|
98
|
+
_reinstall_auto_wrapper || rc=$?
|
|
99
|
+
if [ "$rc" -eq 0 ]; then
|
|
100
|
+
log_success "Automation Tools reinstalled successfully"
|
|
101
|
+
else
|
|
102
|
+
log_warn "$rc automation tool(s) failed to reinstall"
|
|
103
|
+
fi
|
|
104
|
+
separator
|
|
105
|
+
echo
|
|
106
|
+
list_item "n8n"
|
|
107
|
+
echo
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
_reinstall_auto_wrapper() {
|
|
111
|
+
import "@/tools/auto/all"
|
|
112
|
+
reinstall_all_auto_tools
|
|
113
|
+
return $?
|
|
114
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$KARNEL_CACHE/install_db.log"
|
|
7
|
+
|
|
8
|
+
install_db() {
|
|
9
|
+
separator
|
|
10
|
+
box "Installing Databases"
|
|
11
|
+
separator
|
|
12
|
+
echo
|
|
13
|
+
|
|
14
|
+
log_info "Installing databases..."
|
|
15
|
+
|
|
16
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
17
|
+
|
|
18
|
+
local install_rc=0
|
|
19
|
+
_install_db_tools_wrapper || install_rc=$?
|
|
20
|
+
|
|
21
|
+
separator
|
|
22
|
+
|
|
23
|
+
if [ "$install_rc" -eq 0 ]; then
|
|
24
|
+
log_success "Databases installed successfully"
|
|
25
|
+
else
|
|
26
|
+
log_warn "$install_rc database(s) failed to install"
|
|
27
|
+
log_info "Run ${D_CYAN}karnel doctor${NC} for diagnostics"
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
separator
|
|
31
|
+
echo
|
|
32
|
+
list_item "PostgreSQL"
|
|
33
|
+
list_item "MariaDB (MySQL)"
|
|
34
|
+
list_item "SQLite"
|
|
35
|
+
list_item "MongoDB"
|
|
36
|
+
echo
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
_install_db_tools_wrapper() {
|
|
40
|
+
import "@/tools/db/all"
|
|
41
|
+
install_all_db_tools
|
|
42
|
+
return $?
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
uninstall_db() {
|
|
46
|
+
if ! command -v postgres &>/dev/null; then
|
|
47
|
+
log_info "Databases are not installed"
|
|
48
|
+
return 0
|
|
49
|
+
fi
|
|
50
|
+
separator
|
|
51
|
+
box "Uninstalling Databases"
|
|
52
|
+
separator
|
|
53
|
+
echo
|
|
54
|
+
|
|
55
|
+
log_info "Uninstalling databases..."
|
|
56
|
+
|
|
57
|
+
local rc=0
|
|
58
|
+
_uninstall_db_tools_wrapper || rc=$?
|
|
59
|
+
|
|
60
|
+
separator
|
|
61
|
+
|
|
62
|
+
if [ "$rc" -eq 0 ]; then
|
|
63
|
+
log_success "Databases uninstalled"
|
|
64
|
+
else
|
|
65
|
+
log_warn "$rc database(s) failed to uninstall"
|
|
66
|
+
fi
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
_uninstall_db_tools_wrapper() {
|
|
70
|
+
import "@/tools/db/all"
|
|
71
|
+
uninstall_all_db_tools
|
|
72
|
+
return $?
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
update_db() {
|
|
76
|
+
separator
|
|
77
|
+
box "Updating Databases"
|
|
78
|
+
separator
|
|
79
|
+
echo
|
|
80
|
+
|
|
81
|
+
log_info "Updating databases..."
|
|
82
|
+
|
|
83
|
+
local rc=0
|
|
84
|
+
_update_db_tools_wrapper || rc=$?
|
|
85
|
+
|
|
86
|
+
separator
|
|
87
|
+
|
|
88
|
+
if [ "$rc" -eq 0 ]; then
|
|
89
|
+
log_success "Databases updated"
|
|
90
|
+
else
|
|
91
|
+
log_warn "$rc database(s) failed to update"
|
|
92
|
+
fi
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
_update_db_tools_wrapper() {
|
|
96
|
+
import "@/tools/db/all"
|
|
97
|
+
update_all_db_tools
|
|
98
|
+
return $?
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
reinstall_db() {
|
|
102
|
+
separator
|
|
103
|
+
box "Reinstalling Databases"
|
|
104
|
+
separator
|
|
105
|
+
echo
|
|
106
|
+
|
|
107
|
+
log_info "Reinstalling databases..."
|
|
108
|
+
|
|
109
|
+
local rc=0
|
|
110
|
+
_reinstall_db_tools_wrapper || rc=$?
|
|
111
|
+
|
|
112
|
+
separator
|
|
113
|
+
|
|
114
|
+
if [ "$rc" -eq 0 ]; then
|
|
115
|
+
log_success "Databases reinstalled successfully"
|
|
116
|
+
else
|
|
117
|
+
log_warn "$rc database(s) failed to reinstall"
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
echo
|
|
121
|
+
list_item "PostgreSQL"
|
|
122
|
+
list_item "MariaDB (MySQL)"
|
|
123
|
+
list_item "SQLite"
|
|
124
|
+
list_item "MongoDB"
|
|
125
|
+
echo
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
_reinstall_db_tools_wrapper() {
|
|
129
|
+
import "@/tools/db/all"
|
|
130
|
+
reinstall_all_db_tools
|
|
131
|
+
return $?
|
|
132
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$KARNEL_CACHE/install_deploy.log"
|
|
7
|
+
|
|
8
|
+
install_deploy() {
|
|
9
|
+
separator
|
|
10
|
+
box "Installing Deploy CLIs"
|
|
11
|
+
separator
|
|
12
|
+
|
|
13
|
+
log_info "Installing deploy tools (Vercel, Railway, Netlify)..."
|
|
14
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
15
|
+
local rc=0
|
|
16
|
+
_install_deploy_wrapper || rc=$?
|
|
17
|
+
separator
|
|
18
|
+
if [ "$rc" -eq 0 ]; then
|
|
19
|
+
log_success "Deploy tools installed"
|
|
20
|
+
else
|
|
21
|
+
log_warn "$rc deploy tool(s) failed to install"
|
|
22
|
+
fi
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
_install_deploy_wrapper() {
|
|
26
|
+
import "@/tools/deploy/all"
|
|
27
|
+
install_all_deploy_tools
|
|
28
|
+
return $?
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
uninstall_deploy() {
|
|
32
|
+
separator
|
|
33
|
+
box "Uninstalling Deploy CLIs"
|
|
34
|
+
separator
|
|
35
|
+
local rc=0
|
|
36
|
+
import "@/tools/deploy/all"
|
|
37
|
+
uninstall_all_deploy_tools || rc=$?
|
|
38
|
+
separator
|
|
39
|
+
if [ "$rc" -eq 0 ]; then
|
|
40
|
+
log_success "Deploy tools uninstalled"
|
|
41
|
+
else
|
|
42
|
+
log_warn "$rc deploy tool(s) failed to uninstall"
|
|
43
|
+
fi
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
update_deploy() {
|
|
47
|
+
separator
|
|
48
|
+
box "Updating Deploy CLIs"
|
|
49
|
+
separator
|
|
50
|
+
local rc=0
|
|
51
|
+
import "@/tools/deploy/all"
|
|
52
|
+
update_all_deploy_tools || rc=$?
|
|
53
|
+
separator
|
|
54
|
+
if [ "$rc" -eq 0 ]; then
|
|
55
|
+
log_success "Deploy tools updated"
|
|
56
|
+
else
|
|
57
|
+
log_warn "$rc deploy tool(s) failed to update"
|
|
58
|
+
fi
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
reinstall_deploy() {
|
|
62
|
+
separator
|
|
63
|
+
box "Reinstalling Deploy CLIs"
|
|
64
|
+
separator
|
|
65
|
+
local rc=0
|
|
66
|
+
import "@/tools/deploy/all"
|
|
67
|
+
reinstall_all_deploy_tools || rc=$?
|
|
68
|
+
separator
|
|
69
|
+
if [ "$rc" -eq 0 ]; then
|
|
70
|
+
log_success "Deploy tools reinstalled"
|
|
71
|
+
else
|
|
72
|
+
log_warn "$rc deploy tool(s) failed to reinstall"
|
|
73
|
+
fi
|
|
74
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$KARNEL_CACHE/install_dev.log"
|
|
7
|
+
|
|
8
|
+
install_dev() {
|
|
9
|
+
separator
|
|
10
|
+
box "Installing Development Tools"
|
|
11
|
+
separator
|
|
12
|
+
echo
|
|
13
|
+
|
|
14
|
+
log_info "Installing development tools..."
|
|
15
|
+
|
|
16
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
17
|
+
|
|
18
|
+
local rc=0
|
|
19
|
+
_install_dev_wrapper || rc=$?
|
|
20
|
+
if [ "$rc" -eq 0 ]; then
|
|
21
|
+
log_success "Tools installed successfully"
|
|
22
|
+
else
|
|
23
|
+
log_warn "$rc tool(s) failed to install"
|
|
24
|
+
fi
|
|
25
|
+
separator
|
|
26
|
+
echo
|
|
27
|
+
list_item "GitHub CLI"
|
|
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
|
+
echo
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
_install_dev_wrapper() {
|
|
50
|
+
import "@/tools/dev/all"
|
|
51
|
+
install_all_dev
|
|
52
|
+
return $?
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
uninstall_dev() {
|
|
56
|
+
if ! command -v gh &>/dev/null; then
|
|
57
|
+
log_info "Development Tools are not installed"
|
|
58
|
+
return 0
|
|
59
|
+
fi
|
|
60
|
+
separator
|
|
61
|
+
box "Uninstalling Development Tools"
|
|
62
|
+
separator
|
|
63
|
+
echo
|
|
64
|
+
|
|
65
|
+
log_info "Uninstalling development tools..."
|
|
66
|
+
|
|
67
|
+
local rc=0
|
|
68
|
+
_uninstall_dev_wrapper || rc=$?
|
|
69
|
+
if [ "$rc" -eq 0 ]; then
|
|
70
|
+
log_success "Tools uninstalled"
|
|
71
|
+
else
|
|
72
|
+
log_warn "$rc tool(s) failed to uninstall"
|
|
73
|
+
fi
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
_uninstall_dev_wrapper() {
|
|
77
|
+
import "@/tools/dev/all"
|
|
78
|
+
uninstall_all_dev
|
|
79
|
+
return $?
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
update_dev() {
|
|
83
|
+
separator
|
|
84
|
+
box "Updating Development Tools"
|
|
85
|
+
separator
|
|
86
|
+
echo
|
|
87
|
+
|
|
88
|
+
log_info "Updating development tools..."
|
|
89
|
+
|
|
90
|
+
local rc=0
|
|
91
|
+
_update_dev_wrapper || rc=$?
|
|
92
|
+
if [ "$rc" -eq 0 ]; then
|
|
93
|
+
log_success "Tools updated"
|
|
94
|
+
else
|
|
95
|
+
log_warn "$rc tool(s) failed to update"
|
|
96
|
+
fi
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
_update_dev_wrapper() {
|
|
100
|
+
import "@/tools/dev/all"
|
|
101
|
+
update_all_dev
|
|
102
|
+
return $?
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
reinstall_dev() {
|
|
106
|
+
separator
|
|
107
|
+
box "Reinstalling Development Tools"
|
|
108
|
+
separator
|
|
109
|
+
echo
|
|
110
|
+
|
|
111
|
+
log_info "Reinstalling development tools..."
|
|
112
|
+
|
|
113
|
+
local rc=0
|
|
114
|
+
_reinstall_dev_wrapper || rc=$?
|
|
115
|
+
if [ "$rc" -eq 0 ]; then
|
|
116
|
+
log_success "Tools reinstalled successfully"
|
|
117
|
+
else
|
|
118
|
+
log_warn "$rc tool(s) failed to reinstall"
|
|
119
|
+
fi
|
|
120
|
+
separator
|
|
121
|
+
echo
|
|
122
|
+
list_item "GitHub CLI"
|
|
123
|
+
list_item "Wget"
|
|
124
|
+
list_item "Curl"
|
|
125
|
+
list_item "LSD (ls replacement)"
|
|
126
|
+
list_item "Bat (cat replacement)"
|
|
127
|
+
list_item "Proot (chroot alternative)"
|
|
128
|
+
list_item "Ncurses Utils"
|
|
129
|
+
list_item "Tmate (terminal sharing)"
|
|
130
|
+
list_item "Cloudflared (Cloudflare Tunnel)"
|
|
131
|
+
list_item "Translate Shell"
|
|
132
|
+
list_item "html2text (HTML to text converter)"
|
|
133
|
+
list_item "jq (JSON processor)"
|
|
134
|
+
list_item "bc (calculator)"
|
|
135
|
+
list_item "Tree (directory listing)"
|
|
136
|
+
list_item "Fzf (fuzzy finder)"
|
|
137
|
+
list_item "ImageMagick (image manipulation)"
|
|
138
|
+
list_item "Shfmt (shell script formatter)"
|
|
139
|
+
list_item "Make (build automation)"
|
|
140
|
+
list_item "Udocker (container management)"
|
|
141
|
+
echo
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
_reinstall_dev_wrapper() {
|
|
145
|
+
import "@/tools/dev/all"
|
|
146
|
+
reinstall_all_dev
|
|
147
|
+
return $?
|
|
148
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$KARNEL_CACHE/install_editor.log"
|
|
7
|
+
|
|
8
|
+
install_editor() {
|
|
9
|
+
separator
|
|
10
|
+
box "Installing Code Editor"
|
|
11
|
+
separator
|
|
12
|
+
echo
|
|
13
|
+
|
|
14
|
+
log_info "Installing code-server (VS Code in browser)..."
|
|
15
|
+
|
|
16
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
17
|
+
|
|
18
|
+
local rc=0
|
|
19
|
+
_install_editor_wrapper || rc=$?
|
|
20
|
+
if [ "$rc" -eq 0 ]; then
|
|
21
|
+
log_success "Code editor installed successfully"
|
|
22
|
+
else
|
|
23
|
+
log_warn "$rc editor component(s) failed to install"
|
|
24
|
+
fi
|
|
25
|
+
separator
|
|
26
|
+
echo
|
|
27
|
+
list_item "code-server (VS Code in browser)"
|
|
28
|
+
list_item "Access at http://localhost:8080"
|
|
29
|
+
list_item "Set password: ${D_CYAN}code-server --auth password${NC}"
|
|
30
|
+
echo
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
uninstall_editor() {
|
|
34
|
+
if ! command -v code-server &>/dev/null; then
|
|
35
|
+
log_info "Code Editor is not installed"
|
|
36
|
+
return 0
|
|
37
|
+
fi
|
|
38
|
+
separator
|
|
39
|
+
box "Uninstalling Code Editor"
|
|
40
|
+
separator
|
|
41
|
+
echo
|
|
42
|
+
|
|
43
|
+
log_info "Uninstalling code-server..."
|
|
44
|
+
|
|
45
|
+
local rc=0
|
|
46
|
+
_uninstall_editor_wrapper || rc=$?
|
|
47
|
+
if [ "$rc" -eq 0 ]; then
|
|
48
|
+
log_success "Code editor uninstalled"
|
|
49
|
+
else
|
|
50
|
+
log_warn "$rc editor component(s) failed to uninstall"
|
|
51
|
+
fi
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
update_editor() {
|
|
55
|
+
separator
|
|
56
|
+
box "Updating Code Editor"
|
|
57
|
+
separator
|
|
58
|
+
echo
|
|
59
|
+
|
|
60
|
+
log_info "Updating code-server..."
|
|
61
|
+
|
|
62
|
+
local rc=0
|
|
63
|
+
_update_editor_wrapper || rc=$?
|
|
64
|
+
if [ "$rc" -eq 0 ]; then
|
|
65
|
+
log_success "Code editor updated"
|
|
66
|
+
else
|
|
67
|
+
log_warn "$rc editor component(s) failed to update"
|
|
68
|
+
fi
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
reinstall_editor() {
|
|
72
|
+
separator
|
|
73
|
+
box "Reinstalling Code Editor"
|
|
74
|
+
separator
|
|
75
|
+
echo
|
|
76
|
+
|
|
77
|
+
log_info "Reinstalling code-server..."
|
|
78
|
+
|
|
79
|
+
local rc=0
|
|
80
|
+
_reinstall_editor_wrapper || rc=$?
|
|
81
|
+
if [ "$rc" -eq 0 ]; then
|
|
82
|
+
log_success "Code editor reinstalled successfully"
|
|
83
|
+
else
|
|
84
|
+
log_warn "$rc editor component(s) failed to reinstall"
|
|
85
|
+
fi
|
|
86
|
+
separator
|
|
87
|
+
echo
|
|
88
|
+
list_item "code-server (VS Code in browser)"
|
|
89
|
+
list_item "Access at http://localhost:8080"
|
|
90
|
+
echo
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
_install_editor_wrapper() {
|
|
94
|
+
import "@/tools/editor/all"
|
|
95
|
+
install_all_editor_components
|
|
96
|
+
return $?
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
_uninstall_editor_wrapper() {
|
|
100
|
+
import "@/tools/editor/all"
|
|
101
|
+
uninstall_all_editor_components
|
|
102
|
+
return $?
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
_update_editor_wrapper() {
|
|
106
|
+
import "@/tools/editor/all"
|
|
107
|
+
update_all_editor_components
|
|
108
|
+
return $?
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
_reinstall_editor_wrapper() {
|
|
112
|
+
import "@/tools/editor/all"
|
|
113
|
+
reinstall_all_editor_components
|
|
114
|
+
return $?
|
|
115
|
+
}
|