optimizeSvg function

void optimizeSvg(
  1. List<String> arguments
)

Implementation

void optimizeSvg(List<String> arguments) {
  final ArgParser argParser = buildParser();
  try {
    final ArgResults results = argParser.parse(arguments);

    final String inputName = results[_inputOptionName];
    final String outputName = results[_outputOptionName];

    if (!inputName.toLowerCase().endsWith('.svg')) {
      File(inputName).copySync(outputName);
      exit(0);
    }

    final String? configPath = results[_configOptionName];

    final ProcessResult result = Process.runSync(
      'svgo',
      [
        '-i',
        inputName,
        '-o',
        outputName,
        if (configPath != null) ...['--config', configPath],
      ],
    );

    if (result.exitCode != 0) {
      print(result.stderr);
      stderr.write(result.stderr);
      exit(result.exitCode);
    } else {
      print(result.stdout);
      exit(0);
    }
  } on FormatException catch (e) {
    print(e.message);
    print(argParser.usage);
    exit(1);
  } on ProcessException catch (_) {
    print(
        'It looks like svgo is not configured properly. To install it, refer to README file.');
    exit(1);
  } catch (e) {
    print(e.toString());
    exit(1);
  }
}