[libcalamares] Fix early failure mode

- There is more to failing out of loadModules() than just
   emitting modulesFailed, so instead share the failure
   code with the code after loading modules -- but don't load any.
This commit is contained in:
Adriaan de Groot 2018-06-26 08:43:23 -04:00
parent 0db8082ae1
commit d66393f1ae

View File

@ -176,16 +176,10 @@ ModuleManager::loadModules()
QTimer::singleShot( 0, this, [ this ]() QTimer::singleShot( 0, this, [ this ]()
{ {
QStringList failedModules = checkDependencies(); QStringList failedModules = checkDependencies();
if ( !failedModules.isEmpty() )
{
emit modulesFailed( failedModules );
return;
}
Settings::InstanceDescriptionList customInstances = Settings::InstanceDescriptionList customInstances =
Settings::instance()->customModuleInstances(); Settings::instance()->customModuleInstances();
const auto modulesSequence = Settings::instance()->modulesSequence(); const auto modulesSequence = failedModules.isEmpty() ? Settings::instance()->modulesSequence() : Settings::ModuleSequence();
for ( const auto& modulePhase : modulesSequence ) for ( const auto& modulePhase : modulesSequence )
{ {
ModuleAction currentAction = modulePhase.first; ModuleAction currentAction = modulePhase.first;
@ -336,7 +330,7 @@ ModuleManager::checkDependencies()
somethingWasRemovedBecauseOfUnmetDependencies = true; somethingWasRemovedBecauseOfUnmetDependencies = true;
m_availableDescriptorsByModuleName.erase( it ); m_availableDescriptorsByModuleName.erase( it );
failed << moduleName; failed << moduleName;
cWarning() << "Module" << moduleName << "has unmet requirement" << depName; cWarning() << "Module" << moduleName << "has unknown requirement" << depName;
break; break;
} }
} }