checkConfig static method

void checkConfig(
  1. Map<String, dynamic> config,
  2. FCoreGenType type, [
  3. String platform = 'all'
])

Implementation

static void checkConfig(Map<String, dynamic> config, FCoreGenType type,
    [String platform = 'all']) {
  switch (type) {
    case FCoreGenType.copyright:
      if (!config.containsKey('copyright')) {
        printLog('Your `fcoregen` section does not contain a `copyright` or '
            '`copyright`.');
        exit(1);
      }

      if (!config.containsKey('extensions')) {
        printLog('Your `fcoregen` section does not contain a `extensions` or '
            '`extensions`.');
        exit(1);
      }
      break;
    case FCoreGenType.localization:
      if (!config.containsKey('folderLocalization')) {
        printLog(
            'Your `fcoregen` section does not contain a `folderLocalization` or '
            '`folderLocalization`.');
        exit(1);
      }

      if (!config.containsKey('fileCSV') &&
          !(config.containsKey('fileGoogleSheet') &&
              (config['fileGoogleSheet'] as YamlMap).containsKey('docsId') &&
              (config['fileGoogleSheet'] as YamlMap)
                  .containsKey('sheetId'))) {
        printLog('Your `fcoregen` section does not contain a `fileCSV` or '
            '`fileGoogleSheet`. Please provide fileCSV if you use CSV file to generate language, or provide correct docsId and sheetId information of fileGoogleSheet field if you use Google Sheet to generate language.');
        exit(1);
      }
      break;

    case FCoreGenType.fastlane:
      final isExistIOSConfig =
          config.containsKey('fastlaneIOS') && config['fastlaneIOS'] != null;
      final isExistAndroidConfig = config.containsKey('fastlaneAndroid') &&
          config['fastlaneAndroid'] != null;

      if (!isExistIOSConfig && platform == 'ios') {
        printLog(
            'Your `fcoregen` section does not contain a `fastlaneIOS` .');
        exit(1);
      } else if (!isExistAndroidConfig && platform == 'android') {
        printLog(
            'Your `fcoregen` section does not contain a `fastlaneAndroid`.');
        exit(1);
      } else if (!isExistIOSConfig && !isExistAndroidConfig) {
        printLog(
            'Your `fcoregen` section does not contain a `fastlaneIOS` and '
            '`fastlaneAndroid`.');
        exit(1);
      }

      var messageError = '';
      var countError = 0;

      // validate android
      if (config.containsKey('fastlaneAndroid')) {
        final configAndroid = config['fastlaneAndroid'] as YamlMap;
        if (!configAndroid.containsKey('firebaseAppId') ||
            (configAndroid['firebaseAppId'] as String).isEmpty) {
          countError++;
          messageError +=
              '\n $countError. [fastlaneAndroid] > [firebaseAppId]';
        }

        if (!configAndroid.containsKey('emailTester') ||
            (configAndroid['emailTester'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneAndroid] > [emailTester]';
        }

        if (!configAndroid.containsKey('bundleId') ||
            (configAndroid['bundleId'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneAndroid] > [bundleId]';
        }
      }

      // validate ios
      if (config.containsKey('fastlaneIOS') &&
          config['fastlaneIOS'] != null) {
        final configIOS = config['fastlaneIOS'] as YamlMap;
        if (!configIOS.containsKey('firebaseAppId') ||
            (configIOS['firebaseAppId'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneIOS] > [firebaseAppId]';
        }
        if (!configIOS.containsKey('emailTester') ||
            (configIOS['emailTester'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneIOS] > [emailTester]';
        }
        if (!configIOS.containsKey('bundleId') ||
            (configIOS['bundleId'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneIOS] > [bundleId]';
        }
        if (!configIOS.containsKey('teamId') ||
            (configIOS['teamId'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneIOS] > [teamId]';
        }
        if (!configIOS.containsKey('emailAppleDevelop') ||
            (configIOS['emailAppleDevelop'] as String).isEmpty) {
          countError++;
          messageError +=
              '\n $countError. [fastlaneIOS] > [emailAppleDevelop]';
        }
        if (!configIOS.containsKey('pathIPA') ||
            (configIOS['pathIPA'] as String).isEmpty) {
          countError++;
          messageError += '\n $countError. [fastlaneIOS] > [pathIPA]';
        }
        if (!configIOS.containsKey('provisioningAdhoc') ||
            (configIOS['provisioningAdhoc'] as String).isEmpty) {
          countError++;
          messageError +=
              '\n $countError. [fastlaneIOS] > [provisioningAdhoc]';
        }
        if (!configIOS.containsKey('codeSignIdentifyDistribute') ||
            (configIOS['codeSignIdentifyDistribute'] as String).isEmpty) {
          countError++;
          messageError +=
              '\n $countError. [fastlaneIOS] > [codeSignIdentifyDistribute]';
        }
        if (!configIOS.containsKey('buildConfiguration') ||
            (configIOS['buildConfiguration'] as String).isEmpty) {
          countError++;
          messageError +=
              '\n $countError. [fastlaneIOS] > [buildConfiguration]';
        }
        if (!configIOS.containsKey('pathFileExportOption') ||
            (configIOS['pathFileExportOption'] as String).isEmpty) {
          countError++;
          messageError +=
              '\n $countError. [fastlaneIOS] > [pathFileExportOption]';
        }
      }

      if (messageError.isNotEmpty) {
        printLog('######## List of missing data ########');
        printLog(messageError);
        printLog('######################################');
        printLog(GenerateFastlaneConstants.exampleDocs);
        exit(1);
      }
      break;
    default:
  }
}