karnel-termux 4.17.44 → 4.18.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 +14 -14
- package/docs/CHANGELOG.md +16 -0
- package/docs/_layouts/base.html +1 -1
- package/docs/cli/index.md +1 -1
- package/docs/index.md +5 -5
- package/docs/karnel/ai/index.md +1 -1
- package/docs/karnel/auto/index.md +1 -1
- package/docs/karnel/db/index.md +1 -1
- package/docs/karnel/deploy/index.md +1 -1
- package/docs/karnel/dev/index.md +1 -1
- package/docs/karnel/editor/index.md +1 -1
- package/docs/karnel/games/index.md +1 -1
- package/docs/karnel/lang/index.md +1 -1
- package/docs/karnel/network/index.md +1 -1
- package/docs/karnel/npm/index.md +1 -1
- package/docs/karnel/osint/index.md +1 -1
- package/docs/karnel/plugin/index.md +1 -1
- package/docs/karnel/security/index.md +1 -1
- package/docs/karnel/shell/index.md +1 -1
- package/docs/karnel/ui/index.md +1 -1
- package/docs/karnel/utils/index.md +1 -1
- package/docs/karnel/voice/index.md +1 -1
- package/docs/troubleshooting/index.md +2 -2
- package/install.sh +1 -1
- package/karnel/RELEASE_COMMIT +1 -1
- package/karnel/bin/karnel +1 -1
- package/karnel/cli/commands/doctor/fixes.sh +8 -13
- package/karnel/cli/commands/doctor.sh +70 -10
- package/karnel/cli/commands/init.sh +9 -8
- package/karnel/cli/commands/install.sh +8 -6
- package/karnel/cli/commands/reinstall.sh +1 -0
- package/karnel/cli/commands/update.sh +10 -8
- package/karnel/tools/ai/10router/install.sh +4 -3
- package/karnel/tools/ai/all.sh +35 -14
- package/karnel/tools/ai/antigravity-cli/README.md +1 -1
- package/karnel/tools/ai/cactus-needle/README.md +1 -1
- package/karnel/tools/ai/claude-code/README.md +1 -1
- package/karnel/tools/ai/cline/install.sh +7 -6
- package/karnel/tools/ai/codebuff/README.md +1 -1
- package/karnel/tools/ai/codegraph/README.md +1 -1
- package/karnel/tools/ai/codex/README.md +1 -1
- package/karnel/tools/ai/codex/install.sh +4 -3
- package/karnel/tools/ai/command-code/README.md +1 -1
- package/karnel/tools/ai/command-code/install.sh +4 -3
- package/karnel/tools/ai/copilot-termux/install.sh +5 -4
- package/karnel/tools/ai/crush/install.sh +4 -3
- package/karnel/tools/ai/ctx7/install.sh +4 -3
- package/karnel/tools/ai/engram/README.md +1 -1
- package/karnel/tools/ai/freebuff/install.sh +228 -7
- package/karnel/tools/ai/gemini-cli/README.md +1 -1
- package/karnel/tools/ai/gemini-cli/install.sh +4 -3
- package/karnel/tools/ai/gga/README.md +1 -1
- package/karnel/tools/ai/hermes-agent/README.md +1 -1
- package/karnel/tools/ai/keelcode/install.sh +12 -6
- package/karnel/tools/ai/kilocode-cli/README.md +1 -1
- package/karnel/tools/ai/kimchi-code/README.md +1 -1
- package/karnel/tools/ai/kimi-code/README.md +1 -1
- package/karnel/tools/ai/kimi-code/install.sh +4 -3
- package/karnel/tools/ai/mimocode/README.md +1 -1
- package/karnel/tools/ai/minimax-cli/README.md +1 -1
- package/karnel/tools/ai/minimax-cli/install.sh +4 -3
- package/karnel/tools/ai/mistral-vibe/README.md +1 -1
- package/karnel/tools/ai/ollama/README.md +1 -1
- package/karnel/tools/ai/omni-route/README.md +1 -1
- package/karnel/tools/ai/omni-route/install.sh +3 -2
- package/karnel/tools/ai/openclaude/README.md +1 -1
- package/karnel/tools/ai/openclaude/install.sh +4 -3
- package/karnel/tools/ai/openclaw/README.md +1 -1
- package/karnel/tools/ai/openclaw/install.sh +5 -4
- package/karnel/tools/ai/opencode/README.md +1 -1
- package/karnel/tools/ai/openspec/install.sh +4 -3
- package/karnel/tools/ai/pi/README.md +1 -1
- package/karnel/tools/ai/pi/install.sh +4 -3
- package/karnel/tools/ai/puter/install.sh +4 -3
- package/karnel/tools/ai/qwen-code/README.md +1 -1
- package/karnel/tools/ai/qwen-code/install.sh +4 -3
- package/karnel/tools/ai/supercode-cli/README.md +1 -1
- package/karnel/tools/ai/supercode-cli/install.sh +4 -3
- package/karnel/tools/ai/walkie/install.sh +6 -5
- package/karnel/tools/auto/n8n/README.md +1 -1
- package/karnel/tools/auto/n8n/install.sh +4 -3
- package/karnel/tools/db/mariadb/README.md +1 -1
- package/karnel/tools/db/mongodb/README.md +1 -1
- package/karnel/tools/db/postgresql/README.md +1 -1
- package/karnel/tools/db/redis/README.md +1 -1
- package/karnel/tools/db/sqlite/README.md +1 -1
- package/karnel/tools/deploy/netlify/install.sh +5 -4
- package/karnel/tools/deploy/railway/install.sh +4 -3
- package/karnel/tools/deploy/vercel/install.sh +4 -3
- package/karnel/tools/dev/bat/README.md +1 -1
- package/karnel/tools/dev/bc/README.md +1 -1
- package/karnel/tools/dev/cloudflared/README.md +1 -1
- package/karnel/tools/dev/curl/README.md +1 -1
- package/karnel/tools/dev/fzf/README.md +1 -1
- package/karnel/tools/dev/gh/README.md +1 -1
- package/karnel/tools/dev/html2text/README.md +1 -1
- package/karnel/tools/dev/imagemagick/README.md +1 -1
- package/karnel/tools/dev/jq/README.md +1 -1
- package/karnel/tools/dev/lsd/README.md +1 -1
- package/karnel/tools/dev/make/README.md +1 -1
- package/karnel/tools/dev/ncurses/README.md +1 -1
- package/karnel/tools/dev/openssh/README.md +1 -1
- package/karnel/tools/dev/proot/README.md +1 -1
- package/karnel/tools/dev/shfmt/README.md +1 -1
- package/karnel/tools/dev/snyk/install.sh +4 -3
- package/karnel/tools/dev/tmate/README.md +1 -1
- package/karnel/tools/dev/tmux/README.md +1 -1
- package/karnel/tools/dev/translate/README.md +1 -1
- package/karnel/tools/dev/tree/README.md +1 -1
- package/karnel/tools/dev/udocker/README.md +1 -1
- package/karnel/tools/dev/wget/README.md +1 -1
- package/karnel/tools/editor/neovim/README.md +1 -1
- package/karnel/tools/editor/nvchad/README.md +1 -1
- package/karnel/tools/lang/clang/README.md +1 -1
- package/karnel/tools/lang/golang/README.md +1 -1
- package/karnel/tools/lang/nodejs/README.md +1 -1
- package/karnel/tools/lang/perl/README.md +1 -1
- package/karnel/tools/lang/php/README.md +1 -1
- package/karnel/tools/lang/python/README.md +1 -1
- package/karnel/tools/lang/rust/README.md +1 -1
- package/karnel/tools/network/dark/README.md +1 -1
- package/karnel/tools/network/dedsec-network/README.md +1 -1
- package/karnel/tools/npm/live-server/README.md +1 -1
- package/karnel/tools/npm/live-server/install.sh +4 -3
- package/karnel/tools/npm/localtunnel/README.md +1 -1
- package/karnel/tools/npm/localtunnel/install.sh +4 -3
- package/karnel/tools/npm/markserv/README.md +1 -1
- package/karnel/tools/npm/markserv/install.sh +4 -3
- package/karnel/tools/npm/ncu/README.md +1 -1
- package/karnel/tools/npm/ncu/install.sh +4 -3
- package/karnel/tools/npm/nestjs/README.md +1 -1
- package/karnel/tools/npm/nestjs/install.sh +4 -3
- package/karnel/tools/npm/ngrok/README.md +1 -1
- package/karnel/tools/npm/ngrok/install.sh +4 -3
- package/karnel/tools/npm/prettier/README.md +1 -1
- package/karnel/tools/npm/prettier/install.sh +4 -3
- package/karnel/tools/npm/psqlformat/README.md +1 -1
- package/karnel/tools/npm/psqlformat/install.sh +4 -3
- package/karnel/tools/npm/turbopack/README.md +1 -1
- package/karnel/tools/npm/typescript/README.md +1 -1
- package/karnel/tools/npm/typescript/install.sh +4 -3
- package/karnel/tools/npm/vercel/README.md +1 -1
- package/karnel/tools/npm/vercel/install.sh +4 -3
- package/karnel/tools/plugins/install.sh +1 -1
- package/karnel/tools/security/wafw00f/install.sh +3 -1
- package/karnel/tools/security/wpscan/install.sh +3 -1
- package/karnel/tools/shell/better-npm/README.md +1 -1
- package/karnel/tools/shell/fzf-tab/README.md +1 -1
- package/karnel/tools/shell/history-substring/README.md +1 -1
- package/karnel/tools/shell/powerlevel10k/README.md +1 -1
- package/karnel/tools/shell/you-should-use/README.md +1 -1
- package/karnel/tools/shell/zsh-autopair/README.md +1 -1
- package/karnel/tools/shell/zsh-autosuggestions/README.md +1 -1
- package/karnel/tools/shell/zsh-completions/README.md +1 -1
- package/karnel/tools/shell/zsh-defer/README.md +1 -1
- package/karnel/tools/shell/zsh-syntax-highlighting/README.md +1 -1
- package/karnel/tools/ui/banner/README.md +1 -1
- package/karnel/tools/ui/cursor/README.md +1 -1
- package/karnel/tools/ui/extra-keys/README.md +1 -1
- package/karnel/tools/ui/font/README.md +1 -1
- package/karnel/tools/utils/applaunch/README.md +1 -1
- package/karnel/tools/utils/fconv/README.md +1 -1
- package/karnel/tools/utils/filecheck/README.md +1 -1
- package/karnel/tools/utils/httptmux/README.md +1 -1
- package/karnel/tools/utils/httptmux/install.sh +4 -3
- package/karnel/tools/utils/notes/README.md +1 -1
- package/karnel/tools/utils/passman/README.md +1 -1
- package/karnel/tools/utils/qrcode/README.md +1 -1
- package/karnel/tools/utils/splash/README.md +1 -1
- package/karnel/tools/utils/treex/README.md +1 -1
- package/karnel/tools/utils/websites/README.md +1 -1
- package/karnel/tools/utils/zork/README.md +1 -1
- package/karnel/utils/compat.sh +543 -0
- package/karnel/utils/npm.sh +95 -0
- package/karnel/utils/tools.sh +49 -0
- package/karnel/utils/version.sh +10 -8
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/karnel-termuxOFC/karnel-termux/main/assets/images/karnel-logo.png" alt="Karnel Termux Logo" width="400">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="https://github.com/
|
|
11
|
-
<img src="https://img.shields.io/badge/version-4.
|
|
10
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux">
|
|
11
|
+
<img src="https://img.shields.io/badge/version-4.18.0-0078D4?style=for-the-badge" alt="Version">
|
|
12
12
|
</a>
|
|
13
13
|
<a href="https://www.npmjs.com/package/karnel-termux">
|
|
14
14
|
<img src="https://img.shields.io/npm/v/karnel-termux?style=for-the-badge&logo=npm&color=cb3837" alt="npm">
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://www.npmjs.com/package/karnel-termux">
|
|
17
17
|
<img src="https://img.shields.io/npm/dt/karnel-termux?style=for-the-badge&logo=npm&color=cb3837" alt="npm downloads">
|
|
18
18
|
</a>
|
|
19
|
-
<a href="https://github.com/
|
|
19
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux/blob/main/LICENSE">
|
|
20
20
|
<img src="https://img.shields.io/badge/license-MIT-0078D4?style=for-the-badge" alt="License">
|
|
21
21
|
</a>
|
|
22
22
|
<a href="https://termux.dev/">
|
|
@@ -78,9 +78,9 @@ Why it's great:
|
|
|
78
78
|
### Via checksummed GitHub release (recommended)
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
version=4.
|
|
81
|
+
version=4.18.0
|
|
82
82
|
tmpdir=$(mktemp -d) && trap 'rm -rf "$tmpdir"' EXIT
|
|
83
|
-
base="https://github.com/
|
|
83
|
+
base="https://github.com/karnel-termuxOFC/karnel-termux/releases/download/v$version"
|
|
84
84
|
curl -fsSL "$base/karnel-termux-install.sh" -o "$tmpdir/karnel-termux-install.sh"
|
|
85
85
|
curl -fsSL "$base/karnel-termux-install.sh.sha256" -o "$tmpdir/karnel-termux-install.sh.sha256"
|
|
86
86
|
(cd "$tmpdir" && sha256sum -c karnel-termux-install.sh.sha256) && bash "$tmpdir/karnel-termux-install.sh" --ref "v$version"
|
|
@@ -250,7 +250,7 @@ optional checksum, and informational capabilities. Native command names and
|
|
|
250
250
|
plugin-to-plugin command collisions are rejected.
|
|
251
251
|
|
|
252
252
|
The installed plugin directory is `${XDG_DATA_HOME:-$HOME/.local/share}/karnel-data/plugins`.
|
|
253
|
-
See the [official plugin registry](https://github.com/
|
|
253
|
+
See the [official plugin registry](https://github.com/karnel-termuxOFC/karnel-plugins)
|
|
254
254
|
for schemas, review policy, and safe publication requirements.
|
|
255
255
|
|
|
256
256
|
## AI CLIs
|
|
@@ -408,7 +408,7 @@ definitions across 68 distinct tool labels. It detects subprojects, executes
|
|
|
408
408
|
checks in the matching project or subproject directory, preserves command exit status, and writes
|
|
409
409
|
timestamped text reports under `$KARNEL_DATA/doctor_code_reports/`.
|
|
410
410
|
|
|
411
|
-
Read the **[complete Doctor reference](https://github.com/
|
|
411
|
+
Read the **[complete Doctor reference](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/doctor/index.md)** for modes,
|
|
412
412
|
supported ecosystems, tool coverage, JSON schema, reports, and auto-fix safety.
|
|
413
413
|
|
|
414
414
|
---
|
|
@@ -565,12 +565,12 @@ Documentation loads from https://karneltermux.vercel.app.
|
|
|
565
565
|
|
|
566
566
|
## Documentation
|
|
567
567
|
|
|
568
|
-
- [Documentation index](https://github.com/
|
|
569
|
-
- [CLI reference](https://github.com/
|
|
570
|
-
- [Doctor reference](https://github.com/
|
|
571
|
-
- [Troubleshooting](https://github.com/
|
|
572
|
-
- [Architecture](https://github.com/
|
|
573
|
-
- [Documentation changelog](https://github.com/
|
|
568
|
+
- [Documentation index](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/index.md)
|
|
569
|
+
- [CLI reference](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/cli/index.md)
|
|
570
|
+
- [Doctor reference](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/doctor/index.md)
|
|
571
|
+
- [Troubleshooting](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/troubleshooting/index.md)
|
|
572
|
+
- [Architecture](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/ARCHITECTURE/index.md)
|
|
573
|
+
- [Documentation changelog](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/docs/CHANGELOG.md)
|
|
574
574
|
- [Official website](https://karneltermux.vercel.app)
|
|
575
575
|
|
|
576
576
|
---
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ layout: base
|
|
|
6
6
|
|
|
7
7
|
# Documentation Changelog
|
|
8
8
|
|
|
9
|
+
## 4.18.0
|
|
10
|
+
|
|
11
|
+
- **Three-tier compatibility layer:** a foreign glibc binary is no longer handled by one fixed trick. `compat_adapt` wraps, probes and climbs to the cheapest tier that actually starts the tool — the glibc loader alone (free, installs nothing), the glibc userland (`$PREFIX/glibc/bin`, 383 glibc tools, prepended to `PATH` together with the glibc exec shim so child processes resolve the same way), or proot over a synthetic `/lib`, `/usr` and `/etc` assembled from the sysroot already on the device. That last tier replaces `proot-distro install ubuntu` for binaries that merely hardcode an absolute path, and it downloads nothing. A tier that cannot be reached is refused before the wrapper is written, so `proot -r ''` can never ship, and every step unwraps back to `<path>.karnel-real`.
|
|
12
|
+
- **Shebang repair that survives symlinks:** `compat_fix_shebang` edits the target of a link rather than the link itself. `sed -i` unlinks its argument, so repairing `$PREFIX/bin/npm` used to replace that symlink with a detached copy of `npm-cli.js` whose relative `require('../lib/cli.js')` then resolved from `$PREFIX/bin` — one broken `npm` traded for another. The same bug was live in `karnel doctor`, whose `_fix_npm_shebangs` ran `sed -i` over every entry in `$PREFIX/bin`.
|
|
13
|
+
- **`npm` and the CLIs on top of it were dead on arrival:** Android has no `/usr`, so `#!/usr/bin/env node` exits 126 with `bad interpreter` even though node is installed, and none of the three `termux-exec` preloads intercepts the kernel's shebang resolution. `npm`, `npx`, `kc`, `kcode`, `keel`, `snyk`, `httptmuxd`, `gdbus-codegen`, `glib-genmarshal` and `glib-mkenums` all now resolve to their Termux interpreter; `$PREFIX/bin` reports 0 unresolvable shebangs.
|
|
14
|
+
- **Doctor:** the check asks whether the interpreter path exists instead of grepping for the literal `#!/usr/bin/env`, so a stale absolute path is caught and a resolvable `env` line is left alone; the fix delegates to the compatibility layer; a new *Android Compatibility Layer* section reports the glibc sysroot, how many tools are riding a wrapper, whether proot is reachable for the FHS tier, and any shebang that still does not resolve.
|
|
15
|
+
- **Tests:** `tests/android-compat.sh` covers classification, wrapping, re-tiering without disturbing the parked original, escalation, falling back when no tier helps, building the FHS root exactly once, refusing tier 4 without a root, shebang repair through a symlink, and agreement with `readelf` (17 cases).
|
|
16
|
+
|
|
17
|
+
## 4.17.45
|
|
18
|
+
|
|
19
|
+
- **npm on a real Termux host:** every npm call goes through `karnel_npm()`, which runs npm through `node` when its `#!/usr/bin/env node` shebang cannot be executed (Termux ships no `/usr`, so the kernel answered `bad interpreter`) and retries with `--force` only on `EBADPLATFORM`. The remaining bare `npm install/uninstall/update/view/ls` calls in the installers were converted; guests inside proot keep plain npm.
|
|
20
|
+
- **Installers that could never succeed:** wpscan and wafw00f read their recorded backend with a redirection-only command (`< file`) that prints nothing, so update and uninstall always failed; KeelCode validated the base package digest instead of the `linux-arm64` release it actually downloads; Cline, Command Code, Copilot Termux and Walkie repaired the shebang on the failure branch, leaving the installed binary unrunnable.
|
|
21
|
+
- **Stub detection:** `karnel_is_stub_binary()` replaces a word-list heuristic that reported real CLIs (`supercode`, `python-config`) as offline placeholders right after a successful install.
|
|
22
|
+
- **Test harness:** `run_test` runs the body under `set -e` so intermediate failures surface. This exposed a Turbopack contract that always failed on the x86_64 CI runner, a Kilo Code install aborted by a `tar` stub and an Odysseus uninstall that had to assert its refusal explicitly.
|
|
23
|
+
- **Output noise:** the version spinner probes `/dev/tty` for real instead of trusting `-c`, which passed without a controlling terminal and leaked `No such device or address` into every `karnel update`.
|
|
24
|
+
|
|
9
25
|
## 4.17.44
|
|
10
26
|
|
|
11
27
|
- **CLI correctness:** `karnel search` builds its catalog from tool READMEs in one pass instead of per-directory subshells; `karnel stats` counts modules that actually carry install markers and prints `not installed` instead of empty probes; `karnel open` gained routes for `doctor`, `brain`, `pg`, `init`, `env`, `backup`, `show`, `cleanup`, `supabase`, `linux`, `plugin`, `voice`, `security`, `osint`, `termux`, `termux-api` and `terms`.
|
package/docs/_layouts/base.html
CHANGED
|
@@ -9,7 +9,7 @@ layout: default
|
|
|
9
9
|
<a href="{{ '/troubleshooting/' | relative_url }}">Troubleshooting</a>
|
|
10
10
|
<a href="{{ '/ARCHITECTURE/' | relative_url }}">Architecture</a>
|
|
11
11
|
<a href="{{ '/CHANGELOG/' | relative_url }}">Changelog</a>
|
|
12
|
-
<a href="https://github.com/
|
|
12
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux">GitHub</a>
|
|
13
13
|
</nav>
|
|
14
14
|
|
|
15
15
|
{{ content }}
|
package/docs/cli/index.md
CHANGED
|
@@ -349,7 +349,7 @@ karnel robin doctor --network
|
|
|
349
349
|
karnel robin purge-data --yes
|
|
350
350
|
```
|
|
351
351
|
|
|
352
|
-
See the [Robin reference](https://github.com/
|
|
352
|
+
See the [Robin reference](https://github.com/karnel-termuxOFC/karnel-termux/blob/main/karnel/tools/osint/robin/README.md) for detailed
|
|
353
353
|
lifecycle, data locations, and troubleshooting.
|
|
354
354
|
|
|
355
355
|
---
|
package/docs/index.md
CHANGED
|
@@ -37,11 +37,11 @@ Open its docs with `karnel open herdr`.
|
|
|
37
37
|
<a href="./cli/">CLI Commands — full reference for every <code>karnel</code> subcommand</a>
|
|
38
38
|
<a href="./doctor/">Doctor System — environment checks and the code-analysis engine</a>
|
|
39
39
|
<a href="./troubleshooting/">Troubleshooting — common issues and fixes</a>
|
|
40
|
-
<a href="https://github.com/
|
|
41
|
-
<a href="https://github.com/
|
|
42
|
-
<a href="https://github.com/
|
|
43
|
-
<a href="https://github.com/
|
|
44
|
-
<a href="https://github.com/
|
|
40
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux/blob/main/karnel/tools/osint/robin/README.md">Robin OSINT — responsible use, lifecycle, data locations</a>
|
|
41
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux/blob/main/karnel/tools/network/dark/README.md">Network Tools — dark, dedsec-network</a>
|
|
42
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux/blob/main/karnel/tools/ai/keelcode/README.md">KeelCode — hosted coding-agent CLI</a>
|
|
43
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux/blob/main/karnel/tools/utils/superfile/README.md">SuperFile — terminal file manager</a>
|
|
44
|
+
<a href="https://github.com/karnel-termuxOFC/karnel-termux/blob/main/karnel/tools/utils/fconv/README.md">Utility Scripts — fconv, notes, treex, and more</a>
|
|
45
45
|
<a href="./cli/#supabase--remote-project-helpers">Supabase CLI — remote-project helpers</a>
|
|
46
46
|
<a href="./CHANGELOG/">Changelog — version history and fixes</a>
|
|
47
47
|
</div>
|
package/docs/karnel/ai/index.md
CHANGED
|
@@ -12,6 +12,6 @@ AI coding agents and assistants (Claude Code, Codex, Cline, Goose, and many more
|
|
|
12
12
|
| `ai` | `--qwen-code`, `--gemini-cli`, `--claude-code`, `--mistral-vibe`, `--openclaude`, `--openclaw`, `--ollama`, `--codex`, `--opencode`, `--mimocode`, `--engram`, `--codegraph`, `--pi`, `--antigravity-cli`, `--minimax-cli`, `--gentle-ai`, `--gga`, `--hermes-agent`, `--kimi-code`, `--command-code`, `--codebuff`, `--freebuff`, `--kilocode-cli`, `--kiro`, `--crush`, `--cline`, `--odysseus`, `--kimchi-code`, `--omni-route`, `--ctx7`, `--openspec`, `--supercode-cli`, `--puter`, `--keelcode`, `--copilot-termux`, `--qoder`, `--ampcode`, `--cursor-cli`, `--oh-my-pi`, `--goose`, `--droid`, `--cactus`, `--cactus-needle`, `--walkie`, `--hugging-face` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#ai) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/ai.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Automation and workflow tooling (n8n).
|
|
|
12
12
|
| `auto` | `--n8n` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#auto) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/auto.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
package/docs/karnel/db/index.md
CHANGED
|
@@ -12,6 +12,6 @@ Databases such as PostgreSQL, MongoDB, Redis and companions.
|
|
|
12
12
|
| `db` | `--postgresql`, `--mariadb`, `--sqlite`, `--mongodb`, `--redis` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#db) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/db.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Deploy CLIs (Railway, Netlify, Vercel, Supabase).
|
|
|
12
12
|
| `deploy` | `--vercel`, `--railway`, `--netlify`, `--supabase` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#deploy) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/deploy.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
package/docs/karnel/dev/index.md
CHANGED
|
@@ -12,6 +12,6 @@ General development utilities (fzf, bat, make, proot, tmux, and more).
|
|
|
12
12
|
| `dev` | `--gh`, `--wget`, `--curl`, `--lsd`, `--bat`, `--proot`, `--ncurses`, `--tmate`, `--openssh`, `--tmux`, `--cloudflared`, `--translate`, `--html2text`, `--jq`, `--bc`, `--tree`, `--fzf`, `--imagemagick`, `--shfmt`, `--make`, `--udocker`, `--snyk` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#dev) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/dev.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Terminal and browser-based editors (code-server, Neovim, and more).
|
|
|
12
12
|
| `editor` | `--code-server`, `--neovim`, `--nvchad` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#editor) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/editor.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Terminal games to relax between sessions.
|
|
|
12
12
|
| `games` | `--buzz`, `--ctfgod`, `--detective`, `--pet-friends`, `--tamagotchi`, `--arcade` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#games) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/games.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Programming-language runtimes (Python, Node.js, Rust, Go, and more).
|
|
|
12
12
|
| `lang` | `--bun`, `--nodejs`, `--python`, `--perl`, `--php`, `--rust`, `--clang`, `--golang` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#lang) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/lang.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Network utilities (dark, dedsec-network).
|
|
|
12
12
|
| `network` | `--dark`, `--dedsec-network` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#network) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/network.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
package/docs/karnel/npm/index.md
CHANGED
|
@@ -12,6 +12,6 @@ Node.js packages and JavaScript tooling.
|
|
|
12
12
|
| `npm` | `--typescript`, `--nestjs`, `--prettier`, `--live-server`, `--localtunnel`, `--vercel`, `--markserv`, `--psqlformat`, `--ncu`, `--ngrok`, `--turbopack` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#npm) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/npm.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ OSINT tooling, centered on Robin.
|
|
|
12
12
|
| `osint` | Robin OSINT |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#osint) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/osint.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ The plugin system and manager.
|
|
|
12
12
|
| `plugin` | Plugin system |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#plugin) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/plugin.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Security and pentest tooling (30 tools).
|
|
|
12
12
|
| `security` | Security tools |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#security) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/security.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Shell enhancements (ZSH, Oh My Zsh, zoxide).
|
|
|
12
12
|
| `shell` | `--powerlevel10k`, `--zsh-defer`, `--zsh-autosuggestions`, `--zsh-syntax-highlighting`, `--history-substring`, `--zsh-completions`, `--fzf-tab`, `--you-should-use`, `--zsh-autopair`, `--better-npm` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#shell) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/shell.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
package/docs/karnel/ui/index.md
CHANGED
|
@@ -12,6 +12,6 @@ Termux UI components.
|
|
|
12
12
|
| `ui` | `--font`, `--extra-keys`, `--cursor`, `--banner` |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#ui) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/ui.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -16,6 +16,6 @@ and tracked with Karnel ownership markers so `karnel uninstall utils --herdr` is
|
|
|
16
16
|
| `utils` | `--fconv`, `--filecheck`, `--websites`, `--notes`, `--treex`, `--passman`, `--applaunch`, `--splash`, `--httptmux`, `--zork`, `--qrcode`, `--superfile`, `--herdr` |
|
|
17
17
|
|
|
18
18
|
See the [CLI reference]({{ '/cli/' | relative_url }}#utils) for the full command list, or the
|
|
19
|
-
[source on GitHub](https://github.com/
|
|
19
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/utils.sh).
|
|
20
20
|
|
|
21
21
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -12,6 +12,6 @@ Voice commands for AI agents.
|
|
|
12
12
|
| `voice` | Voice command |
|
|
13
13
|
|
|
14
14
|
See the [CLI reference]({{ '/cli/' | relative_url }}#voice) for the full command list, or the
|
|
15
|
-
[source on GitHub](https://github.com/
|
|
15
|
+
[source on GitHub](https://github.com/karnel-termuxOFC/karnel-termux/tree/main/karnel/modules/voice.sh).
|
|
16
16
|
|
|
17
17
|
[← Back to docs]({{ '/' | relative_url }}) · [CLI reference]({{ '/cli/' | relative_url }})
|
|
@@ -40,7 +40,7 @@ Create an npm **granular access token** with:
|
|
|
40
40
|
- **Permissions**: Automation (Bypass 2FA)
|
|
41
41
|
|
|
42
42
|
Save it as the `NPM_TOKEN` Actions secret in the
|
|
43
|
-
`
|
|
43
|
+
`karnel-termuxOFC/karnel-termux` repository. Never paste a token into
|
|
44
44
|
issues, chat, shell history, or screenshots. If a token is ever exposed,
|
|
45
45
|
revoke it immediately at https://www.npmjs.com/settings/<user>/tokens.
|
|
46
46
|
|
|
@@ -58,7 +58,7 @@ the Vercel production site, `https://karneltermux.vercel.app`. The `Publish Docs
|
|
|
58
58
|
workflow (`.github/workflows/docs.yml`) runs `actions/jekyll-build-pages` on
|
|
59
59
|
every push to `main` that changes `docs/**`, uploads the result as a Pages
|
|
60
60
|
artifact and deploys it to the `github-pages` environment; that mirror,
|
|
61
|
-
`https://
|
|
61
|
+
`https://karnel-termuxOFC.github.io/karnel-termux/`, is served only
|
|
62
62
|
while GitHub Pages is enabled for the repository.
|
|
63
63
|
|
|
64
64
|
If a build fails, open the Actions run for the failing job and read the Jekyll
|
package/install.sh
CHANGED
|
@@ -11,7 +11,7 @@ readonly P_FAIL='\e[1;31m'
|
|
|
11
11
|
readonly P_HL='\e[38;5;213m'
|
|
12
12
|
readonly P_NC='\e[0m'
|
|
13
13
|
|
|
14
|
-
REPO="https://github.com/
|
|
14
|
+
REPO="https://github.com/karnel-termuxOFC/karnel-termux"
|
|
15
15
|
BRANCH="main"
|
|
16
16
|
RELEASE_REF=""
|
|
17
17
|
INSTALL_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
package/karnel/RELEASE_COMMIT
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
a6c1aeb11507e48d4e14c3f6c2eb9bd9e9f969da
|
package/karnel/bin/karnel
CHANGED
|
@@ -90,7 +90,7 @@ check_for_updates() {
|
|
|
90
90
|
fi
|
|
91
91
|
if ! _valid_semver "$remote_version"; then
|
|
92
92
|
remote_version=""
|
|
93
|
-
if remote_output=$(curl -fsSL --max-time 5 "https://raw.githubusercontent.com/
|
|
93
|
+
if remote_output=$(curl -fsSL --max-time 5 "https://raw.githubusercontent.com/karnel-termuxOFC/karnel-termux/main/package.json" 2>/dev/null); then
|
|
94
94
|
remote_version=$(printf '%s\n' "$remote_output" | sed -nE 's/^[[:space:]]*"version":[[:space:]]*"([^"]+)".*/\1/p' | head -1)
|
|
95
95
|
fi
|
|
96
96
|
fi
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import "@/utils/log"
|
|
5
5
|
import "@/utils/colors"
|
|
6
6
|
import "@/utils/install"
|
|
7
|
+
import "@/utils/compat"
|
|
7
8
|
|
|
8
9
|
_fix_storage() {
|
|
9
10
|
termux-setup-storage 2>/dev/null
|
|
@@ -219,19 +220,13 @@ _fix_pip_check() {
|
|
|
219
220
|
}
|
|
220
221
|
|
|
221
222
|
_fix_npm_shebangs() {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
elif [[ "$shebang" == "#!/usr/bin/env bash" ]] || [[ "$shebang" == "#!/usr/bin/env sh" ]]; then
|
|
230
|
-
sed -i "1s|^.*$|#!$PREFIX/bin/bash|" "$f" && ((fixed++))
|
|
231
|
-
elif [[ "$shebang" == "#!/usr/bin/env python3" ]] || [[ "$shebang" == "#!/usr/bin/env python" ]]; then
|
|
232
|
-
sed -i "1s|^.*$|#!$PREFIX/bin/python3|" "$f" && ((fixed++))
|
|
233
|
-
fi
|
|
234
|
-
done
|
|
223
|
+
# Delegates to the compatibility layer instead of sed-ing $PREFIX/bin
|
|
224
|
+
# itself: most of those entries are symlinks into node_modules, and
|
|
225
|
+
# `sed -i` unlinks its argument, which would replace npm's symlink with a
|
|
226
|
+
# detached copy whose relative require() resolves from the wrong directory.
|
|
227
|
+
# compat_fix_shebang edits the target and copes with any interpreter, not
|
|
228
|
+
# just node/bash/python3.
|
|
229
|
+
compat_fix_shebangs "$PREFIX/bin" >/dev/null 2>&1
|
|
235
230
|
return 0
|
|
236
231
|
}
|
|
237
232
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import "@/utils/log"
|
|
4
4
|
import "@/utils/colors"
|
|
5
|
+
import "@/utils/compat"
|
|
5
6
|
|
|
6
7
|
doctor_main() {
|
|
7
8
|
local subcommand="${1:-termux}"
|
|
@@ -769,19 +770,31 @@ doctor_termux() {
|
|
|
769
770
|
separator_section "Binary & Shebang Health"
|
|
770
771
|
echo
|
|
771
772
|
|
|
772
|
-
#
|
|
773
|
+
# Interpreters that do not exist on this device. Android has no /usr, so
|
|
774
|
+
# every "#!/usr/bin/env node" the kernel meets answers ENOENT and the shell
|
|
775
|
+
# reports 126, even though node itself is installed. The check is on the
|
|
776
|
+
# interpreter path rather than on the literal "#!/usr/bin/env" prefix, so a
|
|
777
|
+
# shebang pointing at a stale absolute path is caught too.
|
|
773
778
|
local bad_shebangs=0
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
if [[
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
779
|
+
bad_shebangs="$(timeout 20 compat_count_broken_shebangs "$PREFIX/bin" 2>/dev/null)"
|
|
780
|
+
bad_shebangs="${bad_shebangs:-0}"
|
|
781
|
+
if [[ "$bad_shebangs" =~ ^[0-9]+$ ]] && ((bad_shebangs > 0)); then
|
|
782
|
+
log_warn "$bad_shebangs binary(s) point at an interpreter that does not exist"
|
|
783
|
+
local sb_file sb_name
|
|
784
|
+
for sb_file in "$PREFIX/bin"/*; do
|
|
785
|
+
[[ -f "$sb_file" && -r "$sb_file" ]] || continue
|
|
786
|
+
IFS= read -r sb_head <"$sb_file" 2>/dev/null || continue
|
|
787
|
+
[[ "$sb_head" == '#!'* ]] || continue
|
|
788
|
+
sb_name="${sb_head#\#!}"
|
|
789
|
+
sb_name="${sb_name# }"
|
|
790
|
+
sb_name="${sb_name%% *}"
|
|
791
|
+
if [[ "$sb_name" == /* && ! -x "$sb_name" ]]; then
|
|
792
|
+
list_item "$(basename "$sb_file") ($sb_name)"
|
|
793
|
+
fi
|
|
781
794
|
done
|
|
782
795
|
((warnings++))
|
|
783
|
-
fix_commands+=("karnel
|
|
784
|
-
fix_descriptions+=("
|
|
796
|
+
fix_commands+=("karnel doctor --fix")
|
|
797
|
+
fix_descriptions+=("Repoint $bad_shebangs shebang(s) at their Termux interpreter")
|
|
785
798
|
fix_callbacks+=("_fix_npm_shebangs")
|
|
786
799
|
else
|
|
787
800
|
log_success "All binaries have valid shebangs"
|
|
@@ -963,6 +976,53 @@ doctor_termux() {
|
|
|
963
976
|
log_info "proot not installed (optional)"
|
|
964
977
|
fi
|
|
965
978
|
|
|
979
|
+
# ===== ANDROID COMPATIBILITY LAYER =====
|
|
980
|
+
echo
|
|
981
|
+
separator_section "Android Compatibility Layer"
|
|
982
|
+
echo
|
|
983
|
+
# A foreign (glibc) binary cannot be started by the Android kernel at all;
|
|
984
|
+
# karnel hands it to the loader from the glibc sysroot instead. This block
|
|
985
|
+
# reports which of the three tiers are reachable and how many tools are
|
|
986
|
+
# currently riding them.
|
|
987
|
+
local compat_root compat_wrapped=0 compat_entry compat_fixable
|
|
988
|
+
if compat_glibc_ready; then
|
|
989
|
+
compat_root="$(compat_glibc_root)"
|
|
990
|
+
log_success "glibc sysroot: available ($compat_root)"
|
|
991
|
+
else
|
|
992
|
+
log_info "glibc sysroot: not installed (required to run glibc-only tools)"
|
|
993
|
+
fix_commands+=("pkg install -y glibc-repo glibc")
|
|
994
|
+
fix_descriptions+=("Install the glibc sysroot so foreign binaries can run")
|
|
995
|
+
fix_callbacks+=("_fix_pkg_install")
|
|
996
|
+
fi
|
|
997
|
+
|
|
998
|
+
for compat_entry in "$PREFIX/bin"/*; do
|
|
999
|
+
[[ -f "$compat_entry" ]] || continue
|
|
1000
|
+
if _compat_is_wrapper "$compat_entry"; then
|
|
1001
|
+
compat_wrapped=$((compat_wrapped + 1))
|
|
1002
|
+
fi
|
|
1003
|
+
done
|
|
1004
|
+
if ((compat_wrapped > 0)); then
|
|
1005
|
+
log_success "$compat_wrapped tool(s) running through the compatibility wrapper"
|
|
1006
|
+
else
|
|
1007
|
+
log_info "no tool on PATH currently needs a compatibility wrapper"
|
|
1008
|
+
fi
|
|
1009
|
+
|
|
1010
|
+
if compat_proot_available; then
|
|
1011
|
+
log_success "proot: available (tier 4 for binaries that hardcode /usr or /etc)"
|
|
1012
|
+
elif command -v proot >/dev/null 2>&1; then
|
|
1013
|
+
log_info "proot: installed, but the FHS root could not be assembled"
|
|
1014
|
+
else
|
|
1015
|
+
log_info "proot: not installed (optional; only needed for absolute-path tools)"
|
|
1016
|
+
fi
|
|
1017
|
+
|
|
1018
|
+
compat_fixable="$(timeout 20 compat_count_broken_shebangs "$PREFIX/bin" 2>/dev/null)"
|
|
1019
|
+
compat_fixable="${compat_fixable:-0}"
|
|
1020
|
+
if [[ "$compat_fixable" =~ ^[0-9]+$ ]] && ((compat_fixable > 0)); then
|
|
1021
|
+
log_warn "$compat_fixable shebang(s) still point at a missing interpreter"
|
|
1022
|
+
else
|
|
1023
|
+
log_success "every shebang in $PREFIX/bin resolves"
|
|
1024
|
+
fi
|
|
1025
|
+
|
|
966
1026
|
# ===== TERMUX:API =====
|
|
967
1027
|
echo
|
|
968
1028
|
separator_section "Termux:API"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
|
|
3
|
+
import "@/utils/npm"
|
|
3
4
|
import "@/utils/log"
|
|
4
5
|
import "@/utils/colors"
|
|
5
6
|
|
|
@@ -169,8 +170,8 @@ EOF
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
_install_next_deps() {
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
karnel_npm install axios lucide-react framer-motion sonner zod react-hook-form @hookform/resolvers @tanstack/react-query zustand tailwindcss &>"$LOG_FILE"
|
|
174
|
+
karnel_npm install -D prettier prettier-plugin-tailwindcss &>>"$LOG_FILE"
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
# ===== REACT + VITE =====
|
|
@@ -295,8 +296,8 @@ EOF
|
|
|
295
296
|
}
|
|
296
297
|
|
|
297
298
|
_install_react_deps() {
|
|
298
|
-
|
|
299
|
-
|
|
299
|
+
karnel_npm install axios lucide-react framer-motion sonner zod react-hook-form @hookform/resolvers @tanstack/react-query zustand tailwindcss clsx tailwind-merge &>"$LOG_FILE"
|
|
300
|
+
karnel_npm install -D prettier prettier-plugin-tailwindcss &>>"$LOG_FILE"
|
|
300
301
|
}
|
|
301
302
|
|
|
302
303
|
# ===== EXPRESS.JS =====
|
|
@@ -355,11 +356,11 @@ configure_express() {
|
|
|
355
356
|
}
|
|
356
357
|
|
|
357
358
|
_install_express_deps() {
|
|
358
|
-
|
|
359
|
+
karnel_npm install express pg typeorm reflect-metadata jsonwebtoken cookie-parser morgan cors bcryptjs helmet cloudinary multer express-rate-limit tsconfig-paths zod &>"$LOG_FILE"
|
|
359
360
|
}
|
|
360
361
|
|
|
361
362
|
_install_express_dev() {
|
|
362
|
-
|
|
363
|
+
karnel_npm install -D typescript ts-node-dev tsconfig-paths tsc-alias @types/node @types/multer @types/morgan @types/jsonwebtoken @types/helmet @types/express @types/cors @types/cookie-parser @types/bcryptjs &>>"$LOG_FILE"
|
|
363
364
|
}
|
|
364
365
|
|
|
365
366
|
_setup_express_structure() {
|
|
@@ -578,8 +579,8 @@ configure_nest() {
|
|
|
578
579
|
}
|
|
579
580
|
|
|
580
581
|
_install_nest_deps() {
|
|
581
|
-
|
|
582
|
-
|
|
582
|
+
karnel_npm install @nestjs/typeorm typeorm pg @nestjs/jwt @nestjs/passport passport passport-jwt passport-local class-validator class-transformer bcryptjs helmet cloudinary &>>"$LOG_FILE"
|
|
583
|
+
karnel_npm install -D @types/passport-jwt @types/passport-local @types/bcryptjs &>>"$LOG_FILE"
|
|
583
584
|
}
|
|
584
585
|
|
|
585
586
|
configure_python() {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import "@/utils/log"
|
|
4
4
|
import "@/utils/colors"
|
|
5
5
|
import "@/utils/tools"
|
|
6
|
+
import "@/utils/compat"
|
|
6
7
|
|
|
7
8
|
install_main() {
|
|
8
9
|
|
|
@@ -235,18 +236,19 @@ _install_specific_tools() {
|
|
|
235
236
|
IFS=',' read -ra _bin_list <<< "$bins"
|
|
236
237
|
for _bin in "${_bin_list[@]}"; do
|
|
237
238
|
if command -v "$_bin" &>/dev/null; then
|
|
238
|
-
# Check if it is a stub
|
|
239
239
|
local _bin_path
|
|
240
240
|
_bin_path=$(command -v "$_bin")
|
|
241
|
-
if [ -f "$_bin_path" ] && [ -x "$_bin_path" ]; then
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
break
|
|
245
|
-
fi
|
|
241
|
+
if [ -f "$_bin_path" ] && [ -x "$_bin_path" ] && ! karnel_is_stub_binary "$_bin_path"; then
|
|
242
|
+
found_bin="$_bin"
|
|
243
|
+
break
|
|
246
244
|
fi
|
|
247
245
|
fi
|
|
248
246
|
done
|
|
249
247
|
if [ -n "$found_bin" ]; then
|
|
248
|
+
for _bin in "${_bin_list[@]}"; do
|
|
249
|
+
declare -f compat_adapt_installed >/dev/null 2>&1 &&
|
|
250
|
+
compat_adapt_installed "$_bin" || true
|
|
251
|
+
done
|
|
250
252
|
((installed_count++))
|
|
251
253
|
else
|
|
252
254
|
log_warn "$tool: binary not found in PATH after installation"
|