karnel-termux 4.17.37 → 4.17.39
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/karnel/RELEASE_COMMIT +1 -1
- package/karnel/cli/commands/plugin.sh +131 -0
- package/karnel/tools/ai/antigravity-cli/install.sh +2 -1
- package/karnel/tools/ai/cactus-needle/install.sh +2 -1
- package/karnel/tools/ai/claude-code/install.sh +2 -0
- package/karnel/tools/ai/cline/install.sh +2 -0
- package/karnel/tools/ai/codex/install.sh +2 -1
- package/karnel/tools/ai/command-code/install.sh +4 -1
- package/karnel/tools/ai/copilot-termux/install.sh +4 -1
- package/karnel/tools/ai/crush/install.sh +2 -0
- package/karnel/tools/ai/ctx7/install.sh +2 -4
- package/karnel/tools/ai/droid/install.sh +2 -1
- package/karnel/tools/ai/engram/install.sh +2 -1
- package/karnel/tools/ai/freebuff/install.sh +4 -1
- package/karnel/tools/ai/gemini-cli/install.sh +2 -1
- package/karnel/tools/ai/gentle-ai/install.sh +2 -1
- package/karnel/tools/ai/keelcode/install.sh +2 -0
- package/karnel/tools/ai/kimchi-code/install.sh +2 -1
- package/karnel/tools/ai/kimi-code/install.sh +2 -1
- package/karnel/tools/ai/minimax-cli/install.sh +2 -1
- package/karnel/tools/ai/mistral-vibe/install.sh +2 -1
- package/karnel/tools/ai/odysseus/install.sh +2 -1
- package/karnel/tools/ai/oh-my-pi/install.sh +2 -1
- package/karnel/tools/ai/ollama/install.sh +2 -1
- package/karnel/tools/ai/omni-route/install.sh +2 -0
- package/karnel/tools/ai/openclaude/install.sh +2 -1
- package/karnel/tools/ai/openclaw/install.sh +2 -1
- package/karnel/tools/ai/opencode/install.sh +4 -1
- package/karnel/tools/ai/openspec/install.sh +2 -4
- package/karnel/tools/ai/pi/install.sh +2 -1
- package/karnel/tools/ai/qwen-code/install.sh +2 -1
- package/karnel/tools/ai/supercode-cli/install.sh +4 -1
- package/karnel/tools/ai/walkie/install.sh +4 -1
- package/karnel/tools/auto/n8n/install.sh +2 -1
- package/karnel/tools/db/mariadb/install.sh +2 -1
- package/karnel/tools/db/mongodb/install.sh +2 -1
- package/karnel/tools/db/postgresql/install.sh +2 -1
- package/karnel/tools/db/redis/install.sh +2 -1
- package/karnel/tools/db/sqlite/install.sh +2 -1
- package/karnel/tools/deploy/railway/install.sh +2 -1
- package/karnel/tools/dev/bat/install.sh +2 -1
- package/karnel/tools/dev/bc/install.sh +2 -1
- package/karnel/tools/dev/cloudflared/install.sh +2 -1
- package/karnel/tools/dev/curl/install.sh +2 -1
- package/karnel/tools/dev/fzf/install.sh +2 -1
- package/karnel/tools/dev/gh/install.sh +2 -1
- package/karnel/tools/dev/html2text/install.sh +2 -1
- package/karnel/tools/dev/imagemagick/install.sh +2 -1
- package/karnel/tools/dev/jq/install.sh +2 -1
- package/karnel/tools/dev/lsd/install.sh +2 -1
- package/karnel/tools/dev/make/install.sh +2 -1
- package/karnel/tools/dev/ncurses/install.sh +2 -1
- package/karnel/tools/dev/openssh/install.sh +2 -1
- package/karnel/tools/dev/proot/install.sh +2 -1
- package/karnel/tools/dev/shfmt/install.sh +2 -1
- package/karnel/tools/dev/snyk/install.sh +2 -1
- package/karnel/tools/dev/tmate/install.sh +2 -1
- package/karnel/tools/dev/tmux/install.sh +2 -1
- package/karnel/tools/dev/translate/install.sh +2 -1
- package/karnel/tools/dev/tree/install.sh +2 -1
- package/karnel/tools/dev/udocker/install.sh +2 -1
- package/karnel/tools/dev/wget/install.sh +2 -1
- package/karnel/tools/editor/neovim/install.sh +2 -1
- package/karnel/tools/games/arcade/install.sh +2 -1
- package/karnel/tools/games/buzz/install.sh +2 -1
- package/karnel/tools/games/ctfgod/install.sh +2 -1
- package/karnel/tools/games/detective/install.sh +2 -1
- package/karnel/tools/games/pet-friends/install.sh +2 -1
- package/karnel/tools/games/tamagotchi/install.sh +2 -1
- package/karnel/tools/lang/bun/install.sh +2 -1
- package/karnel/tools/lang/clang/install.sh +2 -1
- package/karnel/tools/lang/golang/install.sh +2 -1
- package/karnel/tools/lang/nodejs/install.sh +2 -1
- package/karnel/tools/lang/perl/install.sh +2 -1
- package/karnel/tools/lang/php/install.sh +2 -1
- package/karnel/tools/lang/python/install.sh +2 -1
- package/karnel/tools/lang/rust/install.sh +2 -1
- package/karnel/tools/network/dark/install.sh +2 -1
- package/karnel/tools/network/dedsec-network/install.sh +2 -1
- package/karnel/tools/npm/live-server/install.sh +2 -1
- package/karnel/tools/npm/localtunnel/install.sh +2 -1
- package/karnel/tools/npm/markserv/install.sh +2 -1
- package/karnel/tools/npm/ncu/install.sh +2 -1
- package/karnel/tools/npm/nestjs/install.sh +2 -1
- package/karnel/tools/npm/ngrok/install.sh +2 -1
- package/karnel/tools/npm/prettier/install.sh +2 -1
- package/karnel/tools/npm/psqlformat/install.sh +2 -1
- package/karnel/tools/npm/typescript/install.sh +2 -1
- package/karnel/tools/npm/vercel/install.sh +2 -1
- package/karnel/tools/plugins/install.sh +76 -3
- package/karnel/tools/security/aircrack-ng/install.sh +2 -1
- package/karnel/tools/security/binwalk/install.sh +2 -1
- package/karnel/tools/security/dirb/install.sh +2 -1
- package/karnel/tools/security/dnsrecon/install.sh +2 -1
- package/karnel/tools/security/enum4linux/install.sh +2 -1
- package/karnel/tools/security/exiftool/install.sh +2 -1
- package/karnel/tools/security/foremost/install.sh +2 -1
- package/karnel/tools/security/hashcat/install.sh +2 -1
- package/karnel/tools/security/hydra/install.sh +2 -1
- package/karnel/tools/security/john/install.sh +2 -1
- package/karnel/tools/security/masscan/install.sh +2 -1
- package/karnel/tools/security/metasploit/install.sh +2 -1
- package/karnel/tools/security/netcat/install.sh +2 -1
- package/karnel/tools/security/nikto/install.sh +2 -1
- package/karnel/tools/security/nmap/install.sh +2 -1
- package/karnel/tools/security/smbclient/install.sh +2 -1
- package/karnel/tools/security/sqlmap/install.sh +2 -1
- package/karnel/tools/security/steghide/install.sh +2 -1
- package/karnel/tools/security/tcpdump/install.sh +2 -1
- package/karnel/tools/security/theharvester/install.sh +2 -1
- package/karnel/tools/security/wafw00f/install.sh +2 -1
- package/karnel/tools/security/whatweb/install.sh +2 -1
- package/karnel/tools/security/whois/install.sh +2 -1
- package/karnel/tools/security/wpscan/install.sh +2 -1
- package/karnel/tools/shell/better-npm/install.sh +2 -1
- package/karnel/tools/shell/fzf-tab/install.sh +2 -1
- package/karnel/tools/shell/history-substring/install.sh +2 -1
- package/karnel/tools/shell/powerlevel10k/install.sh +2 -1
- package/karnel/tools/shell/you-should-use/install.sh +2 -1
- package/karnel/tools/shell/zsh-autopair/install.sh +2 -1
- package/karnel/tools/shell/zsh-autosuggestions/install.sh +2 -1
- package/karnel/tools/shell/zsh-completions/install.sh +2 -1
- package/karnel/tools/shell/zsh-defer/install.sh +2 -1
- package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +2 -1
- package/karnel/tools/ui/banner/install.sh +2 -1
- package/karnel/tools/ui/cursor/install.sh +2 -1
- package/karnel/tools/ui/extra-keys/install.sh +2 -1
- package/karnel/tools/ui/font/install.sh +2 -1
- package/karnel/tools/utils/applaunch/install.sh +2 -1
- package/karnel/tools/utils/fconv/install.sh +2 -1
- package/karnel/tools/utils/filecheck/install.sh +2 -1
- package/karnel/tools/utils/httptmux/install.sh +2 -1
- package/karnel/tools/utils/notes/install.sh +2 -1
- package/karnel/tools/utils/passman/install.sh +2 -1
- package/karnel/tools/utils/qrcode/install.sh +2 -1
- package/karnel/tools/utils/splash/install.sh +2 -1
- package/karnel/tools/utils/treex/install.sh +2 -1
- package/karnel/tools/utils/websites/install.sh +2 -1
- package/karnel/tools/utils/zork/install.sh +2 -1
- package/package.json +1 -1
package/karnel/RELEASE_COMMIT
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
9381d567e1350c2d361ee0259d3d915ba6859a71
|
|
@@ -25,6 +25,23 @@ plugin_main() {
|
|
|
25
25
|
update)
|
|
26
26
|
_plugin_update_main "$@"
|
|
27
27
|
;;
|
|
28
|
+
enable)
|
|
29
|
+
if [[ $# -ne 1 ]]; then
|
|
30
|
+
log_error "Usage: karnel plugin enable <name>"
|
|
31
|
+
return 1
|
|
32
|
+
fi
|
|
33
|
+
_plugin_enable "$1"
|
|
34
|
+
;;
|
|
35
|
+
disable)
|
|
36
|
+
if [[ $# -ne 1 ]]; then
|
|
37
|
+
log_error "Usage: karnel plugin disable <name>"
|
|
38
|
+
return 1
|
|
39
|
+
fi
|
|
40
|
+
_plugin_disable "$1"
|
|
41
|
+
;;
|
|
42
|
+
config)
|
|
43
|
+
_plugin_config_main "$@"
|
|
44
|
+
;;
|
|
28
45
|
list|ls)
|
|
29
46
|
if [[ $# -ne 0 ]]; then
|
|
30
47
|
log_error "Usage: karnel plugin list"
|
|
@@ -85,6 +102,114 @@ _plugin_install_main() {
|
|
|
85
102
|
install_plugin "$target" "$unsafe_flag"
|
|
86
103
|
}
|
|
87
104
|
|
|
105
|
+
_plugin_enable() {
|
|
106
|
+
local name="$1"
|
|
107
|
+
local plugin_dir plugin_root
|
|
108
|
+
|
|
109
|
+
_plugin_validate_name "$name" || return 1
|
|
110
|
+
_plugin_require_jq || return 1
|
|
111
|
+
_plugin_prepare_plugins_dir || return 1
|
|
112
|
+
plugin_dir="$PLUGINS_DIR/$name"
|
|
113
|
+
if [[ ! -d "$plugin_dir" ]]; then
|
|
114
|
+
log_error "Plugin '$name' is not installed."
|
|
115
|
+
return 1
|
|
116
|
+
fi
|
|
117
|
+
plugin_root="$(_plugin_validate_installed_plugin "$plugin_dir" "$name")" || return 1
|
|
118
|
+
if _plugin_is_enabled "$plugin_root"; then
|
|
119
|
+
log_info "Plugin '$name' is already enabled."
|
|
120
|
+
return 0
|
|
121
|
+
fi
|
|
122
|
+
_plugin_set_enabled "$plugin_root" "true" || return 1
|
|
123
|
+
log_success "Plugin '$name' enabled."
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
_plugin_disable() {
|
|
127
|
+
local name="$1"
|
|
128
|
+
local plugin_dir plugin_root
|
|
129
|
+
|
|
130
|
+
_plugin_validate_name "$name" || return 1
|
|
131
|
+
_plugin_require_jq || return 1
|
|
132
|
+
_plugin_prepare_plugins_dir || return 1
|
|
133
|
+
plugin_dir="$PLUGINS_DIR/$name"
|
|
134
|
+
if [[ ! -d "$plugin_dir" ]]; then
|
|
135
|
+
log_error "Plugin '$name' is not installed."
|
|
136
|
+
return 1
|
|
137
|
+
fi
|
|
138
|
+
plugin_root="$(_plugin_validate_installed_plugin "$plugin_dir" "$name")" || return 1
|
|
139
|
+
if ! _plugin_is_enabled "$plugin_root"; then
|
|
140
|
+
log_info "Plugin '$name' is already disabled."
|
|
141
|
+
return 0
|
|
142
|
+
fi
|
|
143
|
+
_plugin_set_enabled "$plugin_root" "false" || return 1
|
|
144
|
+
log_success "Plugin '$name' disabled."
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
_plugin_config_main() {
|
|
148
|
+
if [[ $# -eq 0 ]]; then
|
|
149
|
+
log_error "Usage: karnel plugin config <name> [key] [value]"
|
|
150
|
+
log_info " karnel plugin config <name> Show all config"
|
|
151
|
+
log_info " karnel plugin config <name> <key> Get a config value"
|
|
152
|
+
log_info " karnel plugin config <name> <key> <value> Set a config value"
|
|
153
|
+
log_info " karnel plugin config <name> --delete <key> Delete a config key"
|
|
154
|
+
return 1
|
|
155
|
+
fi
|
|
156
|
+
|
|
157
|
+
local name="$1"
|
|
158
|
+
shift
|
|
159
|
+
local plugin_dir plugin_root
|
|
160
|
+
|
|
161
|
+
_plugin_validate_name "$name" || return 1
|
|
162
|
+
_plugin_require_jq || return 1
|
|
163
|
+
_plugin_prepare_plugins_dir || return 1
|
|
164
|
+
plugin_dir="$PLUGINS_DIR/$name"
|
|
165
|
+
if [[ ! -d "$plugin_dir" ]]; then
|
|
166
|
+
log_error "Plugin '$name' is not installed."
|
|
167
|
+
return 1
|
|
168
|
+
fi
|
|
169
|
+
plugin_root="$(_plugin_validate_installed_plugin "$plugin_dir" "$name")" || return 1
|
|
170
|
+
|
|
171
|
+
if [[ $# -eq 0 ]]; then
|
|
172
|
+
local config
|
|
173
|
+
config="$(_plugin_get_config "$plugin_root")"
|
|
174
|
+
if [[ "$config" == "{}" ]]; then
|
|
175
|
+
log_info "Plugin '$name' has no configuration."
|
|
176
|
+
else
|
|
177
|
+
echo "$config" | jq -r 'to_entries[] | " \(.key) = \(.value)"'
|
|
178
|
+
fi
|
|
179
|
+
return 0
|
|
180
|
+
fi
|
|
181
|
+
|
|
182
|
+
if [[ "$1" == "--delete" ]]; then
|
|
183
|
+
if [[ $# -ne 2 ]]; then
|
|
184
|
+
log_error "Usage: karnel plugin config <name> --delete <key>"
|
|
185
|
+
return 1
|
|
186
|
+
fi
|
|
187
|
+
_plugin_delete_config "$plugin_root" "$2" || return 1
|
|
188
|
+
log_success "Config '$2' deleted from plugin '$name'."
|
|
189
|
+
return 0
|
|
190
|
+
fi
|
|
191
|
+
|
|
192
|
+
if [[ $# -eq 1 ]]; then
|
|
193
|
+
local val
|
|
194
|
+
val="$(_plugin_get_config "$plugin_root" "$1")"
|
|
195
|
+
if [[ -z "$val" ]]; then
|
|
196
|
+
log_info "Config '$1' is not set for plugin '$name'."
|
|
197
|
+
else
|
|
198
|
+
echo "$val"
|
|
199
|
+
fi
|
|
200
|
+
return 0
|
|
201
|
+
fi
|
|
202
|
+
|
|
203
|
+
if [[ $# -eq 2 ]]; then
|
|
204
|
+
_plugin_set_config "$plugin_root" "$1" "$2" || return 1
|
|
205
|
+
log_success "Config '$1' set for plugin '$name'."
|
|
206
|
+
return 0
|
|
207
|
+
fi
|
|
208
|
+
|
|
209
|
+
log_error "Usage: karnel plugin config <name> [key] [value]"
|
|
210
|
+
return 1
|
|
211
|
+
}
|
|
212
|
+
|
|
88
213
|
_plugin_update_main() {
|
|
89
214
|
local name=""
|
|
90
215
|
local unsafe_flag=""
|
|
@@ -132,6 +257,9 @@ plugin_help() {
|
|
|
132
257
|
printf " ${D_CYAN}%-30s${NC} %s\n" "install <owner/repo> --unsafe" "Install an unreviewed plugin after confirmation"
|
|
133
258
|
printf " ${D_CYAN}%-30s${NC} %s\n" "remove <name>" "Remove a plugin safely"
|
|
134
259
|
printf " ${D_CYAN}%-30s${NC} %s\n" "update <name>" "Atomically update an approved plugin"
|
|
260
|
+
printf " ${D_CYAN}%-30s${NC} %s\n" "enable <name>" "Enable a disabled plugin"
|
|
261
|
+
printf " ${D_CYAN}%-30s${NC} %s\n" "disable <name>" "Disable a plugin without removing it"
|
|
262
|
+
printf " ${D_CYAN}%-30s${NC} %s\n" "config <name> [key] [value]" "View or set per-plugin configuration"
|
|
135
263
|
printf " ${D_CYAN}%-30s${NC} %s\n" "list" "List installed plugins and trust source"
|
|
136
264
|
printf " ${D_CYAN}%-30s${NC} %s\n" "search [query] [filters]" "Search the approved registry"
|
|
137
265
|
printf " ${D_CYAN}%-30s${NC} %s\n" "create <name>" "Create a validated local plugin"
|
|
@@ -151,6 +279,9 @@ plugin_help() {
|
|
|
151
279
|
echo " karnel plugin install karnel-hello"
|
|
152
280
|
echo " karnel plugin install username/repo --unsafe"
|
|
153
281
|
echo " karnel plugin update karnel-hello"
|
|
282
|
+
echo " karnel plugin enable karnel-hello"
|
|
283
|
+
echo " karnel plugin disable karnel-hello"
|
|
284
|
+
echo " karnel plugin config karnel-hello greeting 'Hello World'"
|
|
154
285
|
echo " karnel plugin remove karnel-hello"
|
|
155
286
|
}
|
|
156
287
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -175,6 +176,7 @@ _install_claude_proot_impl() {
|
|
|
175
176
|
export TMPDIR=/tmp
|
|
176
177
|
export HOME=/root
|
|
177
178
|
npm install -g @anthropic-ai/claude-code@2.1.226
|
|
179
|
+
_fix_npm_shebang "claude-code" || return 1
|
|
178
180
|
' &>>"$LOG_FILE"
|
|
179
181
|
|
|
180
182
|
local ubuntu_root
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -124,6 +125,7 @@ _cline_install_global() {
|
|
|
124
125
|
|
|
125
126
|
_cline_install_global_impl() {
|
|
126
127
|
if ! npm i -g cline &>>"$LOG_FILE"; then
|
|
128
|
+
_fix_npm_shebang "cline" || return 1
|
|
127
129
|
log_error "Failed to install cline via npm"
|
|
128
130
|
return 1
|
|
129
131
|
fi
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -69,6 +70,7 @@ _install_command_code_npm_impl() {
|
|
|
69
70
|
fi
|
|
70
71
|
|
|
71
72
|
if ! (cd "$COMMAND_CODE_DATA_DIR" && npm install command-code@latest &>>"$LOG_FILE"); then
|
|
73
|
+
_fix_npm_shebang "command-code" || return 1
|
|
72
74
|
log_error "Failed to install command-code package"
|
|
73
75
|
return 1
|
|
74
76
|
fi
|
|
@@ -168,6 +170,7 @@ _update_command_code_impl() {
|
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
reinstall_command_code() {
|
|
171
|
-
uninstall_command_code
|
|
173
|
+
uninstall_command_code || [[ $? -eq 2 ]] || return 1
|
|
174
|
+
|
|
172
175
|
install_command_code
|
|
173
176
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -20,6 +21,7 @@ install_copilot_termux() {
|
|
|
20
21
|
fi
|
|
21
22
|
|
|
22
23
|
if ! npm install -g @bash0816/copilot-termux &>>"$LOG_FILE"; then
|
|
24
|
+
_fix_npm_shebang "copilot-termux" || return 1
|
|
23
25
|
log_error "Failed to install Copilot-Termux via npm"
|
|
24
26
|
return 1
|
|
25
27
|
fi
|
|
@@ -75,6 +77,7 @@ _do_update_copilot_termux() {
|
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
reinstall_copilot_termux() {
|
|
78
|
-
uninstall_copilot_termux
|
|
80
|
+
uninstall_copilot_termux || [[ $? -eq 2 ]] || return 1
|
|
81
|
+
|
|
79
82
|
install_copilot_termux
|
|
80
83
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -25,6 +26,7 @@ install_crush() {
|
|
|
25
26
|
if command -v npm &>/dev/null; then
|
|
26
27
|
log_info "Attempting npm install..."
|
|
27
28
|
if npm install -g @charmland/crush &>>"$LOG_FILE"; then
|
|
29
|
+
_fix_npm_shebang "crush" || return 1
|
|
28
30
|
if command -v crush &>/dev/null; then
|
|
29
31
|
record_managed_file "$(command -v crush)" "$CRUSH_MARKER" || return 1
|
|
30
32
|
log_success "Crush installed via npm"
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
# Official: npm install -g ctx7
|
|
7
7
|
import "@/utils/log"
|
|
8
8
|
import "@/utils/version"
|
|
9
|
+
import "@/utils/npm-shebang"
|
|
9
10
|
|
|
10
11
|
install_ctx7() {
|
|
11
12
|
if command -v ctx7 &>/dev/null; then
|
|
@@ -23,10 +24,7 @@ install_ctx7() {
|
|
|
23
24
|
log_info "Installing ctx7 (Context7 documentation provider)..."
|
|
24
25
|
npm install -g ctx7 2>/dev/null
|
|
25
26
|
local rc=$?
|
|
26
|
-
|
|
27
|
-
local _t
|
|
28
|
-
_t=$(readlink -f "$PREFIX/bin/ctx7" 2>/dev/null)
|
|
29
|
-
[ -f "$_t" ] && sed -i '1s|^#!/usr/bin/env node|#!/data/data/com.termux/files/usr/bin/env node|' "$_t"
|
|
27
|
+
_fix_npm_shebang "ctx7" || true
|
|
30
28
|
|
|
31
29
|
if [[ $rc -eq 0 ]] && command -v ctx7 &>/dev/null; then
|
|
32
30
|
log_success "ctx7 installed successfully"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -18,6 +19,7 @@ install_freebuff() {
|
|
|
18
19
|
|
|
19
20
|
log_info "Installing Freebuff..."
|
|
20
21
|
npm install -g freebuff || {
|
|
22
|
+
_fix_npm_shebang "freebuff" || return 1
|
|
21
23
|
log_error "Failed to install Freebuff"
|
|
22
24
|
return 1
|
|
23
25
|
}
|
|
@@ -69,6 +71,7 @@ _do_update_freebuff() {
|
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
reinstall_freebuff() {
|
|
72
|
-
uninstall_freebuff
|
|
74
|
+
uninstall_freebuff || [[ $? -eq 2 ]] || return 1
|
|
75
|
+
|
|
73
76
|
install_freebuff
|
|
74
77
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -187,6 +188,7 @@ install_keelcode() {
|
|
|
187
188
|
log_info "Installing KeelCode..."
|
|
188
189
|
local output rc
|
|
189
190
|
output="$(npm install -g "$KEELCODE_PACKAGE" --force 2>&1)"
|
|
191
|
+
_fix_npm_shebang "keelcode" || return 1
|
|
190
192
|
rc=$?
|
|
191
193
|
printf '%s\n' "$output" | tail -3
|
|
192
194
|
if ((rc != 0)); then
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -136,6 +137,7 @@ install_omni_route() {
|
|
|
136
137
|
|
|
137
138
|
log_info "Installing omniRoute (this may take a while)..."
|
|
138
139
|
if command -v npm >/dev/null 2>&1 && npm i karnelroute --prefix "$OMNI_ROUTE_PKG" 2>>"$LOG_FILE"; then
|
|
140
|
+
_fix_npm_shebang "omni-route" || return 1
|
|
139
141
|
sed -i '1s|^#!/usr/bin/env node|#!'"$PREFIX"'/bin/node|' "$OMNI_ROUTE_LOCAL_BIN" 2>/dev/null
|
|
140
142
|
_omni_route_wrap_and_fix
|
|
141
143
|
if _omni_route_ok; then
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -94,6 +95,7 @@ _install_opencode_proot_impl() {
|
|
|
94
95
|
export TMPDIR=/tmp
|
|
95
96
|
export HOME=/root
|
|
96
97
|
npm install -g opencode-ai@1.18.15
|
|
98
|
+
_fix_npm_shebang "opencode" || return 1
|
|
97
99
|
' &>>"$LOG_FILE"
|
|
98
100
|
|
|
99
101
|
proot_ubuntu /bin/bash -c 'touch /root/.opencode/.karnel-managed' &>>"$LOG_FILE"
|
|
@@ -208,6 +210,7 @@ _do_update_opencode() {
|
|
|
208
210
|
}
|
|
209
211
|
|
|
210
212
|
reinstall_opencode() {
|
|
211
|
-
uninstall_opencode
|
|
213
|
+
uninstall_opencode || [[ $? -eq 2 ]] || return 1
|
|
214
|
+
|
|
212
215
|
install_opencode
|
|
213
216
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
# Official: npm install -g @fission-ai/openspec@latest
|
|
7
7
|
import "@/utils/log"
|
|
8
8
|
import "@/utils/version"
|
|
9
|
+
import "@/utils/npm-shebang"
|
|
9
10
|
|
|
10
11
|
install_openspec() {
|
|
11
12
|
if command -v openspec &>/dev/null; then
|
|
@@ -23,10 +24,7 @@ install_openspec() {
|
|
|
23
24
|
log_info "Installing openspec (Spec-Driven Development framework)..."
|
|
24
25
|
npm install -g @fission-ai/openspec@latest 2>/dev/null
|
|
25
26
|
local rc=$?
|
|
26
|
-
|
|
27
|
-
local _t
|
|
28
|
-
_t=$(readlink -f "$PREFIX/bin/openspec" 2>/dev/null)
|
|
29
|
-
[ -f "$_t" ] && sed -i '1s|^#!/usr/bin/env node|#!/data/data/com.termux/files/usr/bin/env node|' "$_t"
|
|
27
|
+
_fix_npm_shebang "openspec" || true
|
|
30
28
|
|
|
31
29
|
if [[ $rc -eq 0 ]] && command -v openspec &>/dev/null; then
|
|
32
30
|
log_success "openspec installed successfully"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/version"
|
|
@@ -18,6 +19,7 @@ install_supercode_cli() {
|
|
|
18
19
|
log_info "Installing Supercode CLI..."
|
|
19
20
|
local output rc
|
|
20
21
|
output="$(npm install -g supercode-cli 2>&1)"
|
|
22
|
+
_fix_npm_shebang "supercode-cli" || return 1
|
|
21
23
|
rc=$?
|
|
22
24
|
printf '%s\n' "$output" | tail -3
|
|
23
25
|
if ((rc != 0)); then
|
|
@@ -82,6 +84,7 @@ _do_update_supercode_cli() {
|
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
reinstall_supercode_cli() {
|
|
85
|
-
uninstall_supercode_cli
|
|
87
|
+
uninstall_supercode_cli || [[ $? -eq 2 ]] || return 1
|
|
88
|
+
|
|
86
89
|
install_supercode_cli
|
|
87
90
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
import "@/utils/npm-shebang"
|
|
2
3
|
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/colors"
|
|
@@ -124,6 +125,7 @@ _walkie_install_global() {
|
|
|
124
125
|
local spec="$1"
|
|
125
126
|
|
|
126
127
|
if ! npm install -g "$spec" --no-audit --no-fund --no-bin-links --allow-scripts=walkie-sh,udx-native,sodium-native &>>"$LOG_FILE"; then
|
|
128
|
+
_fix_npm_shebang "walkie" || return 1
|
|
127
129
|
log_warn "npm install failed, trying with --ignore-scripts..."
|
|
128
130
|
npm install -g "$spec" --no-audit --no-fund --no-bin-links --allow-scripts=walkie-sh,udx-native,sodium-native --ignore-scripts &>>"$LOG_FILE"
|
|
129
131
|
fi
|
|
@@ -657,6 +659,7 @@ update_walkie() {
|
|
|
657
659
|
}
|
|
658
660
|
|
|
659
661
|
reinstall_walkie() {
|
|
660
|
-
uninstall_walkie
|
|
662
|
+
uninstall_walkie || [[ $? -eq 2 ]] || return 1
|
|
663
|
+
|
|
661
664
|
install_walkie
|
|
662
665
|
}
|