karnel-termux 4.17.3 → 4.17.5

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.
@@ -1 +1 @@
1
- 5b88c3c7229d293e0e92665c71bcb3501a87ed74
1
+ 2e76f74b21de6f9a01911b2c06b96ac09d12359d
@@ -3,6 +3,7 @@
3
3
  import "@/utils/log"
4
4
  import "@/utils/version"
5
5
  import "@/utils/colors"
6
+ import "@/utils/install"
6
7
 
7
8
  LOG_FILE="$KARNEL_CACHE/install_ai.log"
8
9
  KILOCODE_DATA_DIR="${KARNEL_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/karnel-data}/kilocode"
@@ -120,13 +121,15 @@ _download_kilocode_binary_impl() {
120
121
  return 1
121
122
  fi
122
123
 
123
- local expected actual
124
- expected=$(github_release_asset_sha256 Kilo-Org/kilocode "$latest_version" "$tarball") || expected=""
125
- actual=$(sha256sum "$staging_dir/$tarball" 2>/dev/null | awk '{print $1}')
126
- if [[ ! "$expected" =~ ^[0-9a-f]{64}$ || "$actual" != "$expected" ]]; then
127
- rm -rf "$staging_dir"
128
- log_error "Kilo Code archive failed official SHA-256 validation"
129
- return 1
124
+ if declare -F github_release_asset_sha256 >/dev/null; then
125
+ local expected actual
126
+ expected=$(github_release_asset_sha256 Kilo-Org/kilocode "$latest_version" "$tarball") || expected=""
127
+ actual=$(sha256sum "$staging_dir/$tarball" 2>/dev/null | awk '{print $1}')
128
+ if [[ ! "$expected" =~ ^[0-9a-f]{64}$ || "$actual" != "$expected" ]]; then
129
+ rm -rf "$staging_dir"
130
+ log_error "Kilo Code archive failed official SHA-256 validation"
131
+ return 1
132
+ fi
130
133
  fi
131
134
 
132
135
  if ! tar -zxf "$staging_dir/$tarball" -C "$staging_dir" &>>"$LOG_FILE"; then
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  import "@/utils/log"
4
+ import "@/utils/install"
4
5
  import "@/utils/version"
5
6
 
6
7
  LOG_FILE="$KARNEL_CACHE/install_deploy.log"
@@ -110,6 +111,15 @@ _install_railway_manual_impl() {
110
111
  return 2
111
112
  fi
112
113
 
114
+ local expected
115
+ expected=$(github_release_asset_sha256 railwayapp/cli "$latest_version" "railway-${version}-aarch64-linux.tar.gz") || expected=""
116
+ if [[ "$expected" =~ ^[0-9a-f]{64}$ ]]; then
117
+ verify_sha256 "$RAILWAY_DATA_DIR/railway.tar.gz" "$expected" || {
118
+ rm -f "$RAILWAY_DATA_DIR/railway.tar.gz"
119
+ return 1
120
+ }
121
+ fi
122
+
113
123
  tar -zxf "$RAILWAY_DATA_DIR/railway.tar.gz" -C "$RAILWAY_DATA_DIR" 2>>"$LOG_FILE" || {
114
124
  rm -f "$RAILWAY_DATA_DIR/railway.tar.gz"
115
125
  return 1
@@ -73,7 +73,10 @@ update_code_server() {
73
73
  }
74
74
 
75
75
  _update_code_server_impl() {
76
- pkg upgrade -y code-server 2>/dev/null
76
+ if ! pkg upgrade -y code-server &>>"$LOG_FILE"; then
77
+ log_error "Falha ao atualizar code-server"
78
+ return 1
79
+ fi
77
80
  }
78
81
 
79
82
  reinstall_code_server() {
@@ -51,7 +51,10 @@ _update_neovim_impl() {
51
51
 
52
52
  _do_neovim_update() {
53
53
  mkdir -p "$(dirname "$LOG_FILE")"
54
- yes | pkg upgrade neovim -y &>>"$LOG_FILE"
54
+ if ! yes | pkg upgrade neovim -y &>>"$LOG_FILE"; then
55
+ log_error "Falha ao atualizar Neovim"
56
+ return 1
57
+ fi
55
58
  }
56
59
 
57
60
  update_neovim() {
@@ -141,6 +141,14 @@ _download_bun_binary_native_impl() {
141
141
  log_error "Failed to download Bun binary"
142
142
  return 1
143
143
  }
144
+ if declare -F github_release_asset_sha256 >/dev/null; then
145
+ expected=$(github_release_asset_sha256 "$BUN_REPO" "bun-v$version" "$zip_name") || expected=""
146
+ if [[ "$expected" =~ ^[0-9a-f]{64}$ ]]; then
147
+ verify_sha256 "$staging_dir/$zip_name" "$expected" || { rm -rf "$staging_dir"; return 1; }
148
+ else
149
+ log_warn "No published SHA-256 for Bun native; skipping integrity verification"
150
+ fi
151
+ fi
144
152
  if ! unzip -o "$staging_dir/$zip_name" -d "$staging_dir" &>>"$LOG_FILE"; then
145
153
  rm -rf "$staging_dir"
146
154
  log_error "Failed to extract Bun binary"
@@ -19,7 +19,7 @@ install_dnsrecon() {
19
19
  return 1
20
20
  }
21
21
  if install_pinned_git_repo "$_DNSRECON_REPO" "$_DNSRECON_COMMIT" "$_DNSRECON_DIR"; then
22
- pip install -r "$_DNSRECON_DIR/requirements.txt" 2>/dev/null
22
+ pip install -r "$_DNSRECON_DIR/requirements.txt" 2>>"$LOG_FILE" || return 1
23
23
  chmod +x "$_DNSRECON_DIR/dnsrecon.py"
24
24
  ln -sf "$_DNSRECON_DIR/dnsrecon.py" "$PREFIX/bin/dnsrecon"
25
25
  : > "$_DNSRECON_DIR/.karnel-wrapper"
@@ -45,7 +45,7 @@ update_dnsrecon() {
45
45
  { [ -f "$_DNSRECON_DIR/.karnel-wrapper" ] && _adopt_pinned_git_repo "$_DNSRECON_DIR" "$_DNSRECON_REPO"; } || return 1
46
46
  install_pinned_git_repo "$_DNSRECON_REPO" "$_DNSRECON_COMMIT" "$_DNSRECON_DIR" || return 1
47
47
  : > "$_DNSRECON_DIR/.karnel-wrapper"
48
- pip install -r "$_DNSRECON_DIR/requirements.txt" 2>/dev/null
48
+ pip install -r "$_DNSRECON_DIR/requirements.txt" 2>>"$LOG_FILE" || return 1
49
49
  log_success "dnsrecon atualizado"
50
50
  return 0
51
51
  fi
@@ -25,8 +25,8 @@ install_metasploit() {
25
25
  }
26
26
 
27
27
  cd "$METASPLOIT_DIR"
28
- gem install bundler 2>/dev/null
29
- bundle install --jobs 4 2>/dev/null
28
+ gem install bundler 2>>"$LOG_FILE" || return 1
29
+ bundle install --jobs 4 2>>"$LOG_FILE" || return 1
30
30
 
31
31
  for bin in msfconsole msfvenom msfrpc msfrpcd msfdb; do
32
32
  cat > "$PREFIX/bin/$bin" << BINEOF
@@ -58,7 +58,7 @@ update_metasploit() {
58
58
  _pinned_git_repo_owned "$METASPLOIT_DIR" "$METASPLOIT_REPO" ||
59
59
  { [ -f "$METASPLOIT_DIR/.karnel-installed" ] && _adopt_pinned_git_repo "$METASPLOIT_DIR" "$METASPLOIT_REPO"; } || return 1
60
60
  install_pinned_git_repo "$METASPLOIT_REPO" "$METASPLOIT_COMMIT" "$METASPLOIT_DIR" || return 1
61
- cd "$METASPLOIT_DIR" && bundle install --jobs 4 2>/dev/null
61
+ cd "$METASPLOIT_DIR" && bundle install --jobs 4 2>>"$LOG_FILE" || return 1
62
62
  for bin in msfconsole msfvenom msfrpc msfrpcd msfdb; do
63
63
  sha256sum "$PREFIX/bin/$bin" > "$METASPLOIT_DIR/.karnel-wrapper-$bin"
64
64
  done
@@ -19,7 +19,7 @@ install_theharvester() {
19
19
  return 1
20
20
  }
21
21
  if install_pinned_git_repo "$_THEHARVESTER_REPO" "$_THEHARVESTER_COMMIT" "$_THEHARVESTER_DIR"; then
22
- pip install -r "$_THEHARVESTER_DIR/requirements/base.txt" 2>/dev/null
22
+ pip install -r "$_THEHARVESTER_DIR/requirements/base.txt" 2>>"$LOG_FILE" || return 1
23
23
  chmod +x "$_THEHARVESTER_DIR/theHarvester.py"
24
24
  ln -sf "$_THEHARVESTER_DIR/theHarvester.py" "$PREFIX/bin/theharvester"
25
25
  : > "$_THEHARVESTER_DIR/.karnel-wrapper"
@@ -45,7 +45,7 @@ update_theharvester() {
45
45
  { [ -f "$_THEHARVESTER_DIR/.karnel-wrapper" ] && _adopt_pinned_git_repo "$_THEHARVESTER_DIR" "$_THEHARVESTER_REPO"; } || return 1
46
46
  install_pinned_git_repo "$_THEHARVESTER_REPO" "$_THEHARVESTER_COMMIT" "$_THEHARVESTER_DIR" || return 1
47
47
  : > "$_THEHARVESTER_DIR/.karnel-wrapper"
48
- pip install -r "$_THEHARVESTER_DIR/requirements/base.txt" 2>/dev/null
48
+ pip install -r "$_THEHARVESTER_DIR/requirements/base.txt" 2>>"$LOG_FILE" || return 1
49
49
  log_success "theharvester atualizado"
50
50
  return 0
51
51
  fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "karnel-termux",
3
- "version": "4.17.3",
3
+ "version": "4.17.5",
4
4
  "description": "Modular Dev Environment for Termux — install languages, databases, AI agents, editors, and more with one command",
5
5
  "bin": {
6
6
  "karnel": "karnel/bin/karnel"