karnel-termux 4.16.5 → 4.17.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/install.sh +5 -5
- package/karnel/RELEASE_COMMIT +1 -1
- package/karnel/bin/karnel +0 -0
- package/karnel/cli/commands/help.sh +0 -0
- package/karnel/cli/commands/install.sh +3 -0
- package/karnel/cli/commands/update.sh +29 -4
- package/karnel/tools/ai/all.sh +25 -0
- package/karnel/tools/ai/antigravity-cli/install.sh +0 -0
- package/karnel/tools/ai/cactus/install.sh +1 -1
- package/karnel/tools/ai/claude-code/install.sh +0 -0
- package/karnel/tools/ai/cline/bin/cline +0 -0
- package/karnel/tools/ai/cline/install.sh +0 -0
- package/karnel/tools/ai/codebuff/bin/codebuff +0 -0
- package/karnel/tools/ai/codebuff/install.sh +0 -0
- package/karnel/tools/ai/codegraph/install.sh +0 -0
- 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 +0 -0
- package/karnel/tools/ai/ctx7/install.sh +0 -0
- package/karnel/tools/ai/engram/install.sh +0 -0
- package/karnel/tools/ai/gemini-cli/install.sh +0 -0
- package/karnel/tools/ai/gentle-ai/install.sh +0 -0
- package/karnel/tools/ai/gga/install.sh +0 -0
- package/karnel/tools/ai/gga/termux.patch +0 -0
- 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 +6 -0
- 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 +0 -0
- 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 +13 -2
- package/karnel/tools/ai/openspec/install.sh +0 -0
- package/karnel/tools/ai/pi/install.sh +0 -0
- package/karnel/tools/ai/qwen-code/install.sh +0 -0
- package/karnel/tools/ai/walkie/install.sh +4 -2
- package/karnel/tools/auto/n8n/install.sh +0 -0
- 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/redis/install.sh +0 -0
- package/karnel/tools/db/sqlite/install.sh +0 -0
- package/karnel/tools/deploy/netlify/install.sh +0 -0
- package/karnel/tools/deploy/railway/install.sh +0 -0
- package/karnel/tools/deploy/vercel/install.sh +0 -0
- 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 +0 -0
- 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/openssh/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/tmux/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/code-server/install.sh +0 -0
- package/karnel/tools/editor/neovim/install.sh +0 -0
- package/karnel/tools/editor/nvchad/install.sh +0 -0
- 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/bun/bin/bunx +0 -0
- package/karnel/tools/lang/bun/install.sh +0 -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/dark/install.sh +0 -0
- package/karnel/tools/network/dedsec-network/install.sh +0 -0
- 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 +0 -0
- package/karnel/tools/npm/typescript/install.sh +0 -0
- package/karnel/tools/npm/vercel/install.sh +0 -0
- package/karnel/tools/osint/robin/common.sh +0 -0
- package/karnel/tools/osint/robin/install.sh +0 -0
- package/karnel/tools/security/aircrack-ng/install.sh +0 -0
- package/karnel/tools/security/amass/install.sh +0 -0
- package/karnel/tools/security/binwalk/install.sh +0 -0
- package/karnel/tools/security/burpsuite/install.sh +0 -0
- package/karnel/tools/security/dirb/install.sh +0 -0
- package/karnel/tools/security/dnsrecon/install.sh +0 -0
- package/karnel/tools/security/enum4linux/install.sh +0 -0
- package/karnel/tools/security/exiftool/install.sh +0 -0
- package/karnel/tools/security/ffuf/install.sh +0 -0
- package/karnel/tools/security/foremost/install.sh +0 -0
- package/karnel/tools/security/gobuster/install.sh +0 -0
- package/karnel/tools/security/hashcat/install.sh +0 -0
- package/karnel/tools/security/hydra/install.sh +0 -0
- package/karnel/tools/security/john/install.sh +0 -0
- package/karnel/tools/security/masscan/install.sh +0 -0
- package/karnel/tools/security/metasploit/install.sh +0 -0
- package/karnel/tools/security/netcat/install.sh +0 -0
- package/karnel/tools/security/nikto/install.sh +0 -0
- package/karnel/tools/security/nmap/install.sh +0 -0
- package/karnel/tools/security/smbclient/install.sh +0 -0
- package/karnel/tools/security/sqlmap/install.sh +0 -0
- package/karnel/tools/security/steghide/install.sh +0 -0
- package/karnel/tools/security/subfinder/install.sh +0 -0
- package/karnel/tools/security/tcpdump/install.sh +0 -0
- package/karnel/tools/security/theharvester/install.sh +0 -0
- package/karnel/tools/security/wafw00f/install.sh +0 -0
- package/karnel/tools/security/whatweb/install.sh +0 -0
- package/karnel/tools/security/whois/install.sh +0 -0
- package/karnel/tools/security/wpscan/install.sh +0 -0
- package/karnel/tools/security/zap/install.sh +0 -0
- 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/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/applaunch/applaunch.py +0 -0
- package/karnel/tools/utils/applaunch/install.sh +0 -0
- package/karnel/tools/utils/fconv/fconv.py +0 -0
- package/karnel/tools/utils/fconv/install.sh +0 -0
- package/karnel/tools/utils/filecheck/filecheck.py +0 -0
- package/karnel/tools/utils/filecheck/install.sh +0 -0
- package/karnel/tools/utils/httptmux/install.sh +0 -0
- package/karnel/tools/utils/notes/install.sh +0 -0
- package/karnel/tools/utils/notes/notes.py +0 -0
- package/karnel/tools/utils/passman/install.sh +0 -0
- package/karnel/tools/utils/passman/passman.py +0 -0
- package/karnel/tools/utils/qrcode/install.sh +0 -0
- package/karnel/tools/utils/qrcode/qrcode.py +0 -0
- package/karnel/tools/utils/splash/install.sh +0 -0
- package/karnel/tools/utils/splash/splash.py +0 -0
- package/karnel/tools/utils/treex/install.sh +0 -0
- package/karnel/tools/utils/treex/treex.py +0 -0
- package/karnel/tools/utils/websites/install.sh +0 -0
- package/karnel/tools/utils/websites/websites.py +0 -0
- package/karnel/tools/utils/zork/install.sh +0 -0
- package/karnel/tools/utils/zork/zork.sh +0 -0
- package/karnel/utils/agent_actions.sh +46 -5
- package/karnel/utils/agent_llm.sh +64 -28
- package/karnel/utils/bootstrap.sh +4 -2
- package/package.json +1 -1
- package/scripts/check-package.js +15 -5
- package/scripts/npm-install.js +20 -1
package/install.sh
CHANGED
|
@@ -145,7 +145,7 @@ bootstrap_dependencies() {
|
|
|
145
145
|
|
|
146
146
|
if [[ $needed_tput -eq 1 ]]; then
|
|
147
147
|
echo -e " ${P_BORDER}→${P_NC} Installing ncurses-utils..."
|
|
148
|
-
pkg install -y ncurses-utils &>/dev/null
|
|
148
|
+
pkg install -y ncurses-utils &>/dev/null || true
|
|
149
149
|
echo -e " ${P_OK}✔${P_NC} ncurses installed"
|
|
150
150
|
echo
|
|
151
151
|
fi
|
|
@@ -153,7 +153,7 @@ bootstrap_dependencies() {
|
|
|
153
153
|
if [[ $needed_git -eq 1 ]]; then
|
|
154
154
|
log_info "Installing git..."
|
|
155
155
|
progress_bar 0 10
|
|
156
|
-
pkg install -y git &>/dev/null
|
|
156
|
+
pkg install -y git &>/dev/null || true
|
|
157
157
|
progress_bar 10 10
|
|
158
158
|
echo
|
|
159
159
|
log_ok "git installed"
|
|
@@ -162,7 +162,7 @@ bootstrap_dependencies() {
|
|
|
162
162
|
if [[ $needed_glow -eq 1 ]]; then
|
|
163
163
|
log_info "Installing glow..."
|
|
164
164
|
progress_bar 0 10
|
|
165
|
-
pkg install -y glow &>/dev/null
|
|
165
|
+
pkg install -y glow &>/dev/null || true
|
|
166
166
|
progress_bar 10 10
|
|
167
167
|
echo
|
|
168
168
|
log_ok "glow installed"
|
|
@@ -171,7 +171,7 @@ bootstrap_dependencies() {
|
|
|
171
171
|
if [[ $needed_gh -eq 1 ]]; then
|
|
172
172
|
log_info "Installing gh (GitHub CLI)..."
|
|
173
173
|
progress_bar 0 10
|
|
174
|
-
pkg install -y gh &>/dev/null
|
|
174
|
+
pkg install -y gh &>/dev/null || true
|
|
175
175
|
progress_bar 10 10
|
|
176
176
|
echo
|
|
177
177
|
log_ok "gh installed"
|
|
@@ -180,7 +180,7 @@ bootstrap_dependencies() {
|
|
|
180
180
|
if [[ $needed_rg -eq 1 ]]; then
|
|
181
181
|
log_info "Installing ripgrep..."
|
|
182
182
|
progress_bar 0 10
|
|
183
|
-
pkg install -y ripgrep &>/dev/null
|
|
183
|
+
pkg install -y ripgrep &>/dev/null || true
|
|
184
184
|
progress_bar 10 10
|
|
185
185
|
echo
|
|
186
186
|
log_ok "ripgrep installed"
|
package/karnel/RELEASE_COMMIT
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
57a1aa3e5401b6ba9b37965d8680bcb543b0fc00
|
package/karnel/bin/karnel
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -204,6 +204,9 @@ _install_specific_tools() {
|
|
|
204
204
|
done
|
|
205
205
|
|
|
206
206
|
for tool in "${tools[@]}"; do
|
|
207
|
+
# Accept the binary/command name (e.g. --agy) or display name as an
|
|
208
|
+
# alias for the canonical install flag (e.g. --antigravity-cli).
|
|
209
|
+
tool="$(_ai_tool_resolve "$tool")"
|
|
207
210
|
local func_name="install_${tool//-/_}"
|
|
208
211
|
|
|
209
212
|
if [[ -z "${_tool_binaries[$tool]+registered}" ]]; then
|
|
@@ -210,6 +210,18 @@ _update_cleanup() {
|
|
|
210
210
|
rm -f "$KARNEL_CACHE/new_version" "$KARNEL_CACHE/last_version_check"
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
_update_release_commit() {
|
|
214
|
+
local tag="$1" commit=""
|
|
215
|
+
if command -v git &>/dev/null 2>&1; then
|
|
216
|
+
commit=$(git ls-remote "https://github.com/israelmarques1024-dotcom/karnel-termux.git" "refs/tags/${tag}^{}" 2>/dev/null | awk '{print $1}')
|
|
217
|
+
fi
|
|
218
|
+
if [[ -z "$commit" ]] && command -v curl &>/dev/null 2>&1; then
|
|
219
|
+
commit=$(curl -fsS -m 10 "https://api.github.com/repos/israelmarques1024-dotcom/karnel-termux/commits/${tag}" 2>/dev/null \
|
|
220
|
+
| grep -m1 '"sha"' | sed -E 's/.*"sha":[[:space:]]*"([0-9a-f]{40})".*/\1/')
|
|
221
|
+
fi
|
|
222
|
+
[[ "$commit" =~ ^[0-9a-f]{40}$ ]] && echo "$commit"
|
|
223
|
+
}
|
|
224
|
+
|
|
213
225
|
_update_try_curl() {
|
|
214
226
|
command -v curl &>/dev/null || return 1
|
|
215
227
|
|
|
@@ -252,10 +264,23 @@ _update_try_curl() {
|
|
|
252
264
|
|
|
253
265
|
rm -f "$meta" "$sumfile"
|
|
254
266
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
267
|
+
# Resolve the release's target commit so the installer's "immutable
|
|
268
|
+
# commit SHA" requirement is satisfied even when the downloaded asset
|
|
269
|
+
# does not have RELEASE_COMMIT baked in.
|
|
270
|
+
local commit
|
|
271
|
+
commit=$(_update_release_commit "$tag")
|
|
272
|
+
if [[ -n "$commit" ]]; then
|
|
273
|
+
if bash "$installer" --ref "$tag" --commit "$commit"; then
|
|
274
|
+
rm -f "$installer"
|
|
275
|
+
log_success "Karnel-Termux updated via curl ($tag)"
|
|
276
|
+
return 0
|
|
277
|
+
fi
|
|
278
|
+
else
|
|
279
|
+
if bash "$installer" --ref "$tag"; then
|
|
280
|
+
rm -f "$installer"
|
|
281
|
+
log_success "Karnel-Termux updated via curl ($tag)"
|
|
282
|
+
return 0
|
|
283
|
+
fi
|
|
259
284
|
fi
|
|
260
285
|
|
|
261
286
|
rm -f "$installer"
|
package/karnel/tools/ai/all.sh
CHANGED
|
@@ -151,9 +151,34 @@ _ai_tool_registered() {
|
|
|
151
151
|
return 1
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
# Resolve a user token (install flag, binary name, or display name,
|
|
155
|
+
# case-insensitive) to the canonical registry id. Echoes the id and
|
|
156
|
+
# returns 0 when a match is found, otherwise echoes the token unchanged
|
|
157
|
+
# and returns 1.
|
|
158
|
+
_ai_tool_resolve() {
|
|
159
|
+
local token="$1" entry id name bins
|
|
160
|
+
for entry in "${AI_TOOLS_REGISTRY[@]}"; do
|
|
161
|
+
IFS=':' read -r id name bins <<< "$entry"
|
|
162
|
+
[[ "$id" == "$token" ]] && { echo "$id"; return 0; }
|
|
163
|
+
[[ "$name" == "$token" ]] && { echo "$id"; return 0; }
|
|
164
|
+
[[ "${name,,}" == "${token,,}" ]] && { echo "$id"; return 0; }
|
|
165
|
+
local IFS=',' b
|
|
166
|
+
for b in $bins; do
|
|
167
|
+
[[ "$b" == "$token" ]] && { echo "$id"; return 0; }
|
|
168
|
+
done
|
|
169
|
+
done
|
|
170
|
+
echo "$token"
|
|
171
|
+
return 1
|
|
172
|
+
}
|
|
173
|
+
|
|
154
174
|
_run_ai_tool_action() {
|
|
155
175
|
local action="$1"
|
|
156
176
|
local id="$2"
|
|
177
|
+
|
|
178
|
+
# Accept the binary/command name (e.g. --agy) or display name as aliases
|
|
179
|
+
# for the canonical install flag (e.g. --antigravity-cli).
|
|
180
|
+
id="$(_ai_tool_resolve "$id")"
|
|
181
|
+
|
|
157
182
|
local func_name="${action}_${id//-/_}"
|
|
158
183
|
|
|
159
184
|
# A specific --<tool> was requested: skip nested interactive menus and
|
|
File without changes
|
|
@@ -191,7 +191,7 @@ _cactus_write_wrapper() {
|
|
|
191
191
|
# The server loads the engine via ctypes inside the python process, so the
|
|
192
192
|
# whole interpreter must run under qemu-aarch64; CACTUS_EMULATE=1 makes the
|
|
193
193
|
# CLI wrap native subprocess children (bin/run) with qemu as well.
|
|
194
|
-
exec proot-distro login --shared-tmp ubuntu -- env CACTUS_EMULATE=1 qemu-aarch64 -cpu max -L / $CACTUS_CONTAINER_DIR/venv/bin/python -m cactus "
|
|
194
|
+
exec proot-distro login --shared-tmp ubuntu -- env CACTUS_EMULATE=1${CACTUS_CLOUD_KEY:+ CACTUS_CLOUD_KEY="$CACTUS_CLOUD_KEY"}${CACTUS_BASE_URL:+ CACTUS_BASE_URL="$CACTUS_BASE_URL"} qemu-aarch64 -cpu max -L / $CACTUS_CONTAINER_DIR/venv/bin/python -m cactus "$@"
|
|
195
195
|
EOF
|
|
196
196
|
else
|
|
197
197
|
cat >"$temporary" <<EOF
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -394,7 +394,13 @@ uninstall_kimchi_code() {
|
|
|
394
394
|
"$HOME/.local/share/kimchi" \
|
|
395
395
|
"$HOME/.local/state/kimchi" \
|
|
396
396
|
"$HOME/.cache/kimchi"
|
|
397
|
+
# Also remove the binaries installed inside the ubuntu container for
|
|
398
|
+
# proot/glibc installs (they are not cleaned by _uninstall_kimchi_impl).
|
|
399
|
+
if [ -n "$(_kimchi_detect_ubuntu_root)" ] && _kimchi_wrapper_owned; then
|
|
400
|
+
_kimchi_proot_ubuntu /bin/bash -c 'rm -f /usr/local/bin/kimchi && rm -rf /usr/local/share/kimchi' &>>"$LOG_FILE"
|
|
401
|
+
fi
|
|
397
402
|
loading "Uninstalling Kimchi" _uninstall_kimchi_impl
|
|
403
|
+
rm -f "$PREFIX/bin/kimchi"
|
|
398
404
|
return $?
|
|
399
405
|
fi
|
|
400
406
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -96,6 +96,8 @@ _install_opencode_proot_impl() {
|
|
|
96
96
|
npm install -g opencode-ai@1.18.15
|
|
97
97
|
' &>>"$LOG_FILE"
|
|
98
98
|
|
|
99
|
+
proot_ubuntu /bin/bash -c 'touch /root/.opencode/.karnel-managed' &>>"$LOG_FILE"
|
|
100
|
+
|
|
99
101
|
local ubuntu_root
|
|
100
102
|
ubuntu_root="$(detect_ubuntu_root)"
|
|
101
103
|
if [ -z "$ubuntu_root" ]; then
|
|
@@ -153,7 +155,11 @@ uninstall_opencode() {
|
|
|
153
155
|
return 0
|
|
154
156
|
fi
|
|
155
157
|
|
|
156
|
-
proot_ubuntu
|
|
158
|
+
if proot_ubuntu test -f /root/.opencode/.karnel-managed &>>"$LOG_FILE"; then
|
|
159
|
+
proot_ubuntu /bin/bash -c 'rm -rf /root/.opencode' &>>"$LOG_FILE"
|
|
160
|
+
else
|
|
161
|
+
log_warn "OpenCode data in the Ubuntu container was not installed by Karnel — leaving it untouched"
|
|
162
|
+
fi
|
|
157
163
|
local ubuntu_root
|
|
158
164
|
ubuntu_root="$(detect_ubuntu_root)/root/.bashrc"
|
|
159
165
|
if [ -f "$ubuntu_root" ]; then
|
|
@@ -179,7 +185,12 @@ _do_update_opencode() {
|
|
|
179
185
|
return $?
|
|
180
186
|
fi
|
|
181
187
|
|
|
182
|
-
proot_ubuntu
|
|
188
|
+
if proot_ubuntu test -f /root/.opencode/.karnel-managed &>>"$LOG_FILE"; then
|
|
189
|
+
proot_ubuntu /bin/bash -c 'rm -rf /root/.opencode' &>>"$LOG_FILE"
|
|
190
|
+
else
|
|
191
|
+
log_warn "Existing OpenCode in the Ubuntu container was not installed by Karnel — aborting update to avoid data loss"
|
|
192
|
+
return 1
|
|
193
|
+
fi
|
|
183
194
|
proot_ubuntu /bin/bash -c '
|
|
184
195
|
export SHELL=/bin/bash
|
|
185
196
|
export TMPDIR=/tmp
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -646,8 +646,10 @@ update_walkie() {
|
|
|
646
646
|
return 0
|
|
647
647
|
fi
|
|
648
648
|
log_info "New walkie revision available: $remote_commit (installed: $installed_commit)"
|
|
649
|
-
local answer
|
|
650
|
-
|
|
649
|
+
local answer="y"
|
|
650
|
+
if [[ -z "$KARNEL_NONINTERACTIVE" && -t 0 ]]; then
|
|
651
|
+
read -r -p "Update walkie? [Y/n] " answer
|
|
652
|
+
fi
|
|
651
653
|
case "$answer" in
|
|
652
654
|
""|y|Y|yes|Yes|YES) _update_walkie ;;
|
|
653
655
|
*) log_info "Update skipped" ;;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|