&1", $output, $return_var); if ($return_var !== 0 || !file_exists($local_api_response)) { echo ""; $wget_command = "wget -q --no-check-certificate " . escapeshellarg($api_url) . " -O " . escapeshellarg($local_api_response); exec($wget_command . " 2>&1", $output, $return_var); if ($return_var !== 0 || !file_exists($local_api_response)) { die("Unable to access GitHub API. Please check the URL or network connection. Output: " . implode("\n", $output)); } echo ""; } $response = file_get_contents($local_api_response); $data = json_decode($response, true); unlink($local_api_response); $tag_name = $data['tag_name'] ?? ''; $new_version = ''; $asset_file_name = ''; if (isset($data['assets']) && is_array($data['assets'])) { foreach ($data['assets'] as $asset) { if (strpos($asset['name'], $package_name) !== false) { preg_match('/' . preg_quote($package_name, '/') . '_(v?\d+\.\d+\.\d+(-[a-zA-Z0-9]+)?)_all\.ipk$/', $asset['name'], $matches); if (!empty($matches[1])) { $new_version = $matches[1]; $asset_file_name = $asset['name']; break; } } } } if (empty($new_version)) { die("No latest version found or version information is empty"); } if (isset($_GET['check_version'])) { echo "Latest version: v" . $new_version; exit; } $download_url = "https://github.com/$repo_owner/$repo_name/releases/download/{$tag_name}/{$asset_file_name}"; echo "
Latest version: $new_version"; echo "
Tag name: $tag_name"; echo "
Asset file: $asset_file_name"; echo "
Download URL: $download_url"; echo ""; echo ""; echo ""; $local_file = "/tmp/{$asset_file_name}"; $curl_command = "curl -sL " . escapeshellarg($download_url) . " -o " . escapeshellarg($local_file); exec($curl_command . " 2>&1", $output, $return_var); if ($return_var !== 0 || !file_exists($local_file)) { echo ""; $wget_command = "wget -q --show-progress --no-check-certificate " . escapeshellarg($download_url) . " -O " . escapeshellarg($local_file); exec($wget_command . " 2>&1", $output, $return_var); if ($return_var !== 0 || !file_exists($local_file)) { echo "
Download failed. Command output: " . implode("\n", $output) . "";
die("Download failed. The downloaded file was not found");
}
echo "";
} else {
echo "";
}
echo "";
$output = shell_exec("opkg update");
echo "$output"; echo ""; $output = shell_exec("opkg install --force-reinstall " . escapeshellarg($local_file)); echo "
$output"; echo ""; unlink($local_file); ?>