From b814d1b4b25158156a5eb8d3500d4a000851aef8 Mon Sep 17 00:00:00 2001
From: Petr Skoda <commits@skodak.org>
Date: Thu, 26 Apr 2012 19:23:43 +0200
Subject: [PATCH] MDL-32607 prevent upgrade_set_timeout abort in CLI scripts

Credit goes to Michael Aherne, thanks.
---
 lib/upgradelib.php | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/upgradelib.php b/lib/upgradelib.php
index 947e5c5a208..6e6e0298b75 100644
--- a/lib/upgradelib.php
+++ b/lib/upgradelib.php
@@ -116,9 +116,13 @@ function upgrade_set_timeout($max_execution_time=300) {
     }
 
     if (!$upgraderunning) {
-        // upgrade not running or aborted
-        print_error('upgradetimedout', 'admin', "$CFG->wwwroot/$CFG->admin/");
-        die;
+        if (CLI_SCRIPT) {
+            // never stop CLI upgrades
+            $upgraderunning = 0;
+        } else {
+            // web upgrade not running or aborted
+            print_error('upgradetimedout', 'admin', "$CFG->wwwroot/$CFG->admin/");
+        }
     }
 
     if ($max_execution_time < 60) {