From 6335084aa3fe2c50516bae104c1530cba164700f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Jan 2018 14:57:37 +0100 Subject: [PATCH] [libcalamares] Determine what's checked and what's required first. - warn for required checks that are not carried out. --- .../welcome/checker/RequirementsChecker.cpp | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/modules/welcome/checker/RequirementsChecker.cpp b/src/modules/welcome/checker/RequirementsChecker.cpp index 4dbd977d1..e6c8a77de 100644 --- a/src/modules/welcome/checker/RequirementsChecker.cpp +++ b/src/modules/welcome/checker/RequirementsChecker.cpp @@ -211,6 +211,36 @@ void RequirementsChecker::setConfigurationMap( const QVariantMap& configurationMap ) { bool incompleteConfiguration = false; + + if ( configurationMap.contains( "check" ) && + configurationMap.value( "check" ).type() == QVariant::List ) + { + m_entriesToCheck.clear(); + m_entriesToCheck.append( configurationMap.value( "check" ).toStringList() ); + } + else + { + cDebug() << "WARNING: RequirementsChecker entry 'check' is incomplete."; + incompleteConfiguration = true; + } + + if ( configurationMap.contains( "required" ) && + configurationMap.value( "required" ).type() == QVariant::List ) + { + m_entriesToRequire.clear(); + m_entriesToRequire.append( configurationMap.value( "required" ).toStringList() ); + } + else + { + cDebug() << "WARNING: RequirementsChecker entry 'required' is incomplete."; + incompleteConfiguration = true; + } + + // Help out with consistency, but don't fix + for ( const auto& r : m_entriesToRequire ) + if ( !m_entriesToCheck.contains( r ) ) + cDebug() << "WARNING: RequirementsChecker requires" << r << "but does not check it."; + if ( configurationMap.contains( "requiredStorage" ) && ( configurationMap.value( "requiredStorage" ).type() == QVariant::Double || configurationMap.value( "requiredStorage" ).type() == QVariant::Int ) ) @@ -274,30 +304,6 @@ RequirementsChecker::setConfigurationMap( const QVariantMap& configurationMap ) incompleteConfiguration = true; } - if ( configurationMap.contains( "check" ) && - configurationMap.value( "check" ).type() == QVariant::List ) - { - m_entriesToCheck.clear(); - m_entriesToCheck.append( configurationMap.value( "check" ).toStringList() ); - } - else - { - cDebug() << "WARNING: RequirementsChecker entry 'check' is incomplete."; - incompleteConfiguration = true; - } - - if ( configurationMap.contains( "required" ) && - configurationMap.value( "required" ).type() == QVariant::List ) - { - m_entriesToRequire.clear(); - m_entriesToRequire.append( configurationMap.value( "required" ).toStringList() ); - } - else - { - cDebug() << "WARNING: RequirementsChecker entry 'required' is incomplete."; - incompleteConfiguration = true; - } - if ( incompleteConfiguration ) cDebug() << "WARNING: RequirementsChecker configuration map:\n" << configurationMap; }