&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); ?>