main function

void main(
  1. List<String> arguments
)

Implementation

void main(List<String> arguments){
  var file = File(arguments.first);

  if(!file.existsSync()){
    logger.d('cannot find the file ${arguments.first}');
  }

  var context = file.readAsStringSync();
  List<String> generatedOutput = [
    "import 'package:flutter/material.dart';",
    '',
    '// THIS FILE IS AUTOMATICALLY GENERATED',
    '',
    'const appIcons = <String, IconData>{',
  ];
  var r = RegExp(r'const IconData\s([^\s]+)\s',multiLine: true).allMatches(context);
  for (var element in r) {
    generatedOutput.add("  '${element.group(1)}': Icons.${element.group(1)},");
  }

  generatedOutput.addAll(["};"]);

  File output = File('icon.dart');
  output.writeAsStringSync(generatedOutput.join('\n'));
}