#!/usr/bin/env php &1", $output, $return_var); exec("git reset --hard origin/master 2>&1", $output2, $return_var2); echo implode("\n", $output) . "\n" . implode("\n", $output2) . "\n"; } else { // Perform a standard update (git pull) exec("git pull 2>&1", $output, $return_var); // Check if the repository is already up to date if (strpos(implode("\n", $output), 'Already up to date.') === false) { echo implode("\n", $output) . "\n"; echo "Update successful\n"; } else { // If already up-to-date, don't show the update success message echo implode("\n", $output) . "\n"; } } } // If "update_db" is requested if (isset($options['update_db'])) { require_once "../includes/database_version.php"; $latest_db_version = LATEST_DATABASE_VERSION; // Fetch the current version from the database $result = mysqli_query($mysqli, "SELECT config_current_database_version FROM settings LIMIT 1"); $row = mysqli_fetch_assoc($result); DEFINE("CURRENT_DATABASE_VERSION", $row['config_current_database_version']); $old_db_version = $row['config_current_database_version']; // Run the migrations - populates $database_updates_applied and $database_updates_error require_once "../admin/database_updates.php"; foreach ($database_updates_applied as $applied_version) { echo "Applied database update $applied_version\n"; } if ($database_updates_error) { $stopped_at_version = count($database_updates_applied) > 0 ? end($database_updates_applied) : $old_db_version; fwrite(STDERR, "Error: database update failed at $database_updates_error\n"); fwrite(STDERR, "The database is at version $stopped_at_version - re-running will resume at the failed update.\n"); exit(1); } if (count($database_updates_applied) > 0) { echo "Database updated from version $old_db_version to $latest_db_version.\n"; } else { echo "Database is already at the latest version ($latest_db_version). No updates were applied.\n"; } }