#!/bin/bash

checkRequirements()
{
	isHeader "Checking Requirements"
	isNotice "Requirements are about to be installed."
	isNotice "Edit the features config if you want to disable anything."
	echo ""

	checkRootRequirement;
	checkCommandRequirement;
	checkInstallTypeRequirement;
	checkConfigRequirement; 
	checkPasswordsRequirement;
	checkDatabaseRequirement;
	checkDockerRequirement;
	checkDockerComposeRequirement;
	checkDockerRootlessRequirement;
	checkDockerNetworkRequirement;
	checkUFWRequirement;
	checkUFWDRequirement;
	checkSSLCertsRequirement;
	checkSwapfileRequirement;
	checkCrontabRequirement;
	checkWebUISystemdRequirement;
	checkSuggestInstallsRequirement;
	checkLibrePortalWebUIImageRequirement;
	checkLibrePortalWebUIAppRequirement;
	checkTraefikRequirement;
	checkDockerSwitcherRequirement;

	# `startPreInstall` already runs `startScan` at the end of its flow, so
	# only call it again on the no-preinstall path. Otherwise every
	# `libreportal run` that touches preinstall fires `webuiLibrePortalUpdate`
	# twice (the lock file is removed at the end of each invocation, so the
	# second call doesn't short-circuit — it does the full regen again).
	if [[ "$preinstallneeded" -ne 0 ]]; then
		startPreInstall;
	else
		startScan;
	fi

	# After load here
	if [[ "$initial_command2" == "install" ]]; then
		# Clear the install spam so the credentials are the first thing the
		# user sees. The full transcript is preserved in $install_log_path.
		# Stdout is teed to a log file (start.sh `exec > >(tee …)`), so we
		# write the clear sequence straight to /dev/tty instead of relying
		# on `[ -t 1 ]`, which is false under that redirect.
		if [ -e /dev/tty ] && [ -t 0 ]; then
			clear >/dev/tty 2>/dev/null || printf '\033c' >/dev/tty 2>/dev/null
		fi
		webuiDisplayLogins;
	fi

	if [[ "$initial_command2" == "terminal" ]]; then
		resetToMenu;
	fi
} 