String createScriptSource(Map<String, dynamic> values)

Source

String createScriptSource(Map<String, dynamic> values) {
  var addressString = "..address = \"___ADDRESS___\"";
  if (values["ADDRESS"] == null) {
    addressString = "";
  }
  var configString =
      "..configurationFilePath = r\"___CONFIGURATION_FILE_PATH___\"";
  if (values["CONFIGURATION_FILE_PATH"] == null) {
    configString = "";
  }
  var certificateString =
      "..certificateFilePath = r\"___SSL_CERTIFICATE_PATH___\"";
  if (values["SSL_CERTIFICATE_PATH"] == null) {
    certificateString = "";
  }
  var keyString =
      "..privateKeyFilePath = r\"___SSL_KEY_PATH___\"";
  if (values["SSL_KEY_PATH"] == null) {
    keyString = "";
  }

  var onCompleteString =
      "var signalFile = new File(\".\${pid}.$pidSuffix\");\n"
      "\t\tawait signalFile.writeAsString(\"ok\");";
  var onErrorString =
      "\tvar signalFile = new File(\".\${pid}.$pidSuffix\");\n"
      "\tawait signalFile.writeAsString(error);";
  if (!monitorStartup) {
    onCompleteString = "";
    onErrorString = "\tprint(error);";
  }

  var contents = """
import 'dart:async';
import 'dart:io';

import 'package:aqueduct/aqueduct.dart';
import 'package:___PACKAGE_NAME___/___LIBRARY_NAME___.dart';

main() async {
try {
  var app = new Application<___SINK_TYPE___>();
  var config = new ApplicationConfiguration()
    ..port = ___PORT___
    $certificateString
    $keyString
    $addressString
    $configString
    ..isIpv6Only = ___IPV6_ONLY___;

  app.configuration = config;

  await app.start(numberOfInstances: ___NUMBER_OF_ISOLATES___);

  $onCompleteString
} catch (e, st) {
  await writeError("\$e\\n \$st");
}
}

Future writeError(String error) async {
$onErrorString
}
  """;

  return contents.replaceAllMapped(new RegExp("___([A-Za-z0-9_-]+)___"),
      (match) {
    return values[match.group(1)];
  });
}