combine method

EnvConfig? combine({
  1. required String directory,
})

Implementation

EnvConfig? combine({required String directory}) {
  final commands = <String>{};
  final files = <String>{};
  final variables = <String, String>{};

  for (final config in this) {
    if (config == null) continue;

    for (var command in config.commands ?? <String>[]) {
      command = command.replaceAll(Identifiers.concurrent, '');

      commands.add(command);
    }

    files.addAll(config.files ?? []);

    if (config.variables case final Map<String, String> vars
        when vars.isNotEmpty) {
      variables.addAll(vars);
    }
  }

  if (commands.isEmpty && files.isEmpty && variables.isEmpty) {
    return null;
  }

  return EnvConfig(
    commands: commands.toList(),
    files: files.toList(),
    workingDirectory: directory,
    variables: variables,
  );
}