extract method

  1. @override
List<Entry> extract(
  1. ExtractSettings settings
)
override

Implementation

@override
List<Entry> extract(ExtractSettings settings) {
  final res = Process.runSync(
    "xgettext",
    [
      "--output=-",
      "--from-code=${_escape(settings.encoding.name)}",
      if (settings.tag != null) "-c${_escape(settings.tag!)}",
      "--width=${settings.textWidth}",
      file.path
    ],
    stdoutEncoding: settings.encoding,
  );

  if (res.exitCode != 0) {
    throw FileSystemException(_formatError(res.stderr), file.path);
  }

  final catalog = Catalog.fromString(settings, res.stdout as String);
  return catalog.entries;
}