From a3116f7670562e3ecb188769f048e88aa948e2eb Mon Sep 17 00:00:00 2001 From: Florian Schmitt Date: Tue, 1 Apr 2025 13:53:33 +0300 Subject: [PATCH] feat(upgrader): handler hibernating wikis --- utils.inc.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/utils.inc.php b/utils.inc.php index e36d599..cac9425 100644 --- a/utils.inc.php +++ b/utils.inc.php @@ -369,7 +369,18 @@ function upgradeWiki($srcDir, $destDir, $nobackup = false) $output .= 'File not found "' . $f . '"' . "\n"; } } + exec("cat $destDir/wakka.config.php | grep hibernate", $outputHibernate); + $outputHibernate = implode('', $outputHibernate); + $isHibernating = str_contains($outputHibernate, 'hibernate'); + if ($isHibernating) { + $output .= '==== Get YesWiki out of hibernation'; + $output .= cli("sed -r -i -e \"s/(['\\\"]wiki_status['\\\"].*)/'wiki_status' => 'running',/\" $destDir/wakka.config.php"); + } $output .= runUpgrades($sudo, $destDir, array_diff($installedExtensions, $defaultExtensions)); + if ($isHibernating) { + $output .= '==== Get YesWiki back in hibernation'; + $output .= cli("sed -r -i -e \"s/(['\\\"]wiki_status['\\\"].*)/'wiki_status' => 'hibernate',/\" $destDir/wakka.config.php"); + } $version = trim(cli("cat $destDir/includes/constants.php | grep YESWIKI_RELEASE | sed -r -e \"s/.*([0-9]+\\.[0-9]+\\.[0-9]+).*/\\1/\"")); $output .= '==== Change YesWiki version to '.$version.' '. $bars; $output .= cli("sed -r -i -e \"s/(['\\\"]yeswiki_release['\\\"].*)/'yeswiki_release' => '$version',/\" $destDir/wakka.config.php");