From 91715445c682e86779093be7060c7fa08f082021 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 15 Jan 2020 15:34:40 +0100 Subject: [minilinux] Set downloaded linux as default if it's the first/only one --- modules-available/minilinux/inc/minilinux.inc.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'modules-available/minilinux/inc/minilinux.inc.php') diff --git a/modules-available/minilinux/inc/minilinux.inc.php b/modules-available/minilinux/inc/minilinux.inc.php index da8be3f2..7fe2035a 100644 --- a/modules-available/minilinux/inc/minilinux.inc.php +++ b/modules-available/minilinux/inc/minilinux.inc.php @@ -337,14 +337,19 @@ class MiniLinux self::setInstalledState($versionid, $task['statusCode'] === 'TASK_FINISHED'); } - public static function setInstalledState($versionid, $installed) + public static function setInstalledState($versionid, int $installed) { - settype($installed, 'int'); error_log("Setting $versionid to $installed"); Database::exec('UPDATE minilinux_version SET installed = :installed WHERE versionid = :versionid', [ 'versionid' => $versionid, 'installed' => $installed, ]); + if ($installed) { + $res = Database::queryFirst('SELECT Count(*) AS cnt FROM minilinux_version WHERE installed <> 0'); + if ($res['cnt'] == 1) { + self::setDefaultVersion($versionid); + } + } } public static function queryAllVersionsByBranch() @@ -358,4 +363,18 @@ class MiniLinux return $list; } + public static function setDefaultVersion($versionId) + { + Property::set(MiniLinux::PROPERTY_DEFAULT_BOOT, $versionId); + self::updateCurrentBootSetting(); + // Legacy PXELINUX boot menu (TODO: Remove this when we get rid of PXELINUX support) + $task = Taskmanager::submit('Symlink', [ + 'target' => $versionId, + 'linkname' => CONFIG_HTTP_DIR . '/default', + ]); + if ($task !== false) { + Taskmanager::release($task); + } + } + } \ No newline at end of file -- cgit v1.2.3-55-g7522