karnel-termux 4.17.31 → 4.17.33
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 +2 -2
- package/karnel/RELEASE_COMMIT +1 -1
- package/karnel/tools/ai/kilocode-cli/install.sh +4 -9
- package/karnel/utils/install.sh +23 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux">
|
|
11
|
-
<img src="https://img.shields.io/badge/version-4.17.
|
|
11
|
+
<img src="https://img.shields.io/badge/version-4.17.33-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">
|
|
@@ -78,7 +78,7 @@ Why it's great:
|
|
|
78
78
|
### Via checksummed GitHub release (recommended)
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
version=4.17.
|
|
81
|
+
version=4.17.33
|
|
82
82
|
tmpdir=$(mktemp -d) && trap 'rm -rf "$tmpdir"' EXIT
|
|
83
83
|
base="https://github.com/israelmarques1024-dotcom/karnel-termux/releases/download/v$version"
|
|
84
84
|
curl -fsSL "$base/karnel-termux-install.sh" -o "$tmpdir/karnel-termux-install.sh"
|
package/karnel/RELEASE_COMMIT
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
90bb3622bf61156e730dea73a6e700e4d98c9b13
|
|
@@ -176,15 +176,10 @@ _download_kilocode_binary_impl() {
|
|
|
176
176
|
return 1
|
|
177
177
|
fi
|
|
178
178
|
|
|
179
|
-
if
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
if [[ ! "$expected" =~ ^[0-9a-f]{64}$ || "$actual" != "$expected" ]]; then
|
|
184
|
-
rm -rf "$staging_dir"
|
|
185
|
-
log_error "Kilo Code archive failed official SHA-256 validation"
|
|
186
|
-
return 1
|
|
187
|
-
fi
|
|
179
|
+
if ! verify_github_release_asset Kilo-Org/kilocode "$latest_version" "$tarball" "$staging_dir/$tarball"; then
|
|
180
|
+
rm -rf "$staging_dir"
|
|
181
|
+
log_error "Kilo Code archive failed official SHA-256 validation"
|
|
182
|
+
return 1
|
|
188
183
|
fi
|
|
189
184
|
|
|
190
185
|
if ! safe_extract_tar "$staging_dir/$tarball" "$staging_dir"; then
|
package/karnel/utils/install.sh
CHANGED
|
@@ -201,8 +201,27 @@ activate_installer_file() {
|
|
|
201
201
|
|
|
202
202
|
github_release_asset_sha256() {
|
|
203
203
|
local repo="$1" version="$2" asset="$3" digest=""
|
|
204
|
-
# GitHub
|
|
205
|
-
#
|
|
204
|
+
# Modern GitHub releases expose an official SHA-256 in each asset's digest
|
|
205
|
+
# field. Prefer it so installers do not depend on companion checksum files.
|
|
206
|
+
if command -v jq >/dev/null 2>&1; then
|
|
207
|
+
digest=$(curl -fsSL --connect-timeout 10 --max-time 30 \
|
|
208
|
+
-H 'Accept: application/vnd.github+json' \
|
|
209
|
+
"https://api.github.com/repos/$repo/releases/tags/$version" 2>/dev/null \
|
|
210
|
+
| jq -r --arg asset "$asset" '.assets[] | select(.name == $asset) | .digest // empty' 2>/dev/null \
|
|
211
|
+
| awk -F: 'NR == 1 { print $NF }' | tr -d '\r')
|
|
212
|
+
elif command -v python3 >/dev/null 2>&1; then
|
|
213
|
+
digest=$(curl -fsSL --connect-timeout 10 --max-time 30 \
|
|
214
|
+
-H 'Accept: application/vnd.github+json' \
|
|
215
|
+
"https://api.github.com/repos/$repo/releases/tags/$version" 2>/dev/null \
|
|
216
|
+
| python3 -c 'import json, sys; asset = sys.argv[1]; release = json.load(sys.stdin); print(next((item.get("digest", "") for item in release.get("assets", []) if item.get("name") == asset), ""))' "$asset" 2>/dev/null \
|
|
217
|
+
| awk -F: 'NR == 1 { print $NF }' | tr -d '\r')
|
|
218
|
+
fi
|
|
219
|
+
if [[ "$digest" =~ ^[0-9a-f]{64}$ ]]; then
|
|
220
|
+
echo "$digest"
|
|
221
|
+
return 0
|
|
222
|
+
fi
|
|
223
|
+
# Older GitHub releases may not have an API digest. Try the companion
|
|
224
|
+
# checksum file published alongside the asset (a common convention).
|
|
206
225
|
digest=$(curl -fsSL --connect-timeout 10 --max-time 30 \
|
|
207
226
|
"https://github.com/$repo/releases/download/$version/$asset.sha256" 2>/dev/null \
|
|
208
227
|
| awk '{print $1; exit}' | tr -d '\r')
|
|
@@ -284,15 +303,9 @@ managed_file_matches() {
|
|
|
284
303
|
}
|
|
285
304
|
|
|
286
305
|
github_download_and_extract() {
|
|
287
|
-
local repo="$1" version="$2" asset="$3" outdir="$4"
|
|
288
|
-
local tarball expected
|
|
306
|
+
local repo="$1" version="$2" asset="$3" outdir="$4" tarball
|
|
289
307
|
tarball=$(github_download_release "$repo" "$version" "$asset" "$outdir") || return 1
|
|
290
|
-
|
|
291
|
-
if [[ "$expected" =~ ^[0-9a-f]{64}$ ]]; then
|
|
292
|
-
verify_sha256 "$tarball" "$expected" || return 1
|
|
293
|
-
else
|
|
294
|
-
log_warn "No published SHA-256 digest for $repo/$asset; skipping integrity verification"
|
|
295
|
-
fi
|
|
308
|
+
verify_github_release_asset "$repo" "$version" "$asset" "$tarball" || { rm -f "$tarball"; return 1; }
|
|
296
309
|
extract_tarball "$tarball" "$outdir" || return 1
|
|
297
310
|
return 0
|
|
298
311
|
}
|
package/package.json
CHANGED