getItemsFromFile function

Map<String, List<String>>? getItemsFromFile(
  1. List<String> arguments
)

Get custom items from file as Map from cli arguments

Implementation

Map<String, List<String>>? getItemsFromFile(List<String> arguments) {
  var result = <String, List<String>>{};
  for (var i = 0; i < arguments.length; i++) {
    if (arguments.elementAt(i).toLowerCase() == '-f' ||
        arguments.elementAt(i).toLowerCase() == '--file') {
      // file argument can be a path/file or key|path/file or key|path/file|name
      var fileArgument = arguments.elementAt(i + 1);
      var key = fileArgument;
      final index = fileArgument.indexOf('|');
      if (index > 0) {
        key = fileArgument.substring(0, index);
        fileArgument = fileArgument.substring(index + 1, fileArgument.length);
      }
      //print(key);
      var file = File(fileArgument);
      result.putIfAbsent(
          key, () => file.readAsLinesSync().toList(growable: false));
      i++;
    }
  }
  return result;
}