$id, 'version' => $pkg['version'], 'build' => $pkg['build'], 'status' => '1', 'size' => $size]; //dbUpdate($pkg_update, 'packages', '`pkg_id` = ?', array($id)); echo("u"); } else { echo("."); } unset($pkgs_db_id[$id]); } else { if (safe_count($pkgs[$manager][$name][$arch], 1) > 10 || safe_count($pkgs_db[$manager][$name][$arch], 1) === 0) { // dbInsert(array('device_id' => $device['device_id'], 'name' => $name, 'manager' => $manager, // 'status' => 1, 'version' => $pversion, 'build' => $build, 'arch' => $arch, 'size' => $size), 'packages'); $pkg_multi_insert[] = ['device_id' => $device['device_id'], 'name' => $name, 'manager' => $manager, 'status' => 1, 'version' => $pversion, 'build' => $build, 'arch' => $arch, 'size' => $size]; if ($build != "") { $dbuild = '-' . $build; } else { $dbuild = ''; } echo("+" . $name . "-" . $pversion . $dbuild . "-" . $arch); log_event('Package installed: ' . $name . ' (' . $arch . ') version ' . $pversion . $dbuild, $device, 'package'); } elseif (safe_count($pkgs_db[$manager][$name][$arch], 1)) { $pkg_c = dbFetchRow("SELECT * FROM `packages` WHERE `device_id` = ? AND `manager` = ? AND `name` = ? and `arch` = ? ORDER BY version DESC, build DESC", [$device['device_id'], $manager, $name, $arch]); if ($pkg_c['build'] != "") { $pkg_c_dbuild = '-' . $pkg_c['build']; } else { $pkg_c_dbuild = ''; } echo("U(" . $pkg_c['name'] . "-" . $pkg_c['version'] . $pkg_c_dbuild . "|" . $name . "-" . $pversion . $dbuild . ")"); $pkg_multi_update[] = ['pkg_id' => $pkg_c['pkg_id'], 'version' => $pversion, 'build' => $build, 'status' => '1', 'size' => $size]; //dbUpdate($pkg_update, 'packages', '`pkg_id` = ?', array($pkg_c['pkg_id'])); log_event('Package updated: ' . $name . ' (' . $arch . ') from ' . $pkg_c['version'] . $pkg_c_dbuild . ' to ' . $pversion . $dbuild, $device, 'package'); unset($pkgs_db_id[$pkg_c['pkg_id']]); } } unset($pkg_update); } // Multi insert/update if (!empty($pkg_multi_insert)) { dbInsertMulti($pkg_multi_insert, 'packages'); } if (!empty($pkg_multi_update)) { dbUpdateMulti($pkg_multi_update, 'packages'); } // Packages if (!safe_empty($pkgs_db_id)) { foreach ($pkgs_db_id as $id => $pkg) { //dbDelete('packages', "`pkg_id` = ?", array( $id )); echo("-" . $pkg['text']); log_event('Package removed: ' . $pkg['name'] . ' ' . $pkg['arch'] . ' ' . $pkg['version'] . ($pkg['build'] != '' ? "-" . $pkg['build'] : ''), $device, 'package'); } // Multi delete dbDelete('packages', generate_query_values(array_keys($pkgs_db_id), 'pkg_id')); } echo(PHP_EOL); unset($pkg, $pkgs_db_id, $pkg_c, $pkgs, $pkgs_db, $pkg_multi_insert, $pkg_multi_update); // EOF