executeHook function

Future<void> executeHook(
  1. String name,
  2. Hook hook,
  3. List<String> args
)

Implementation

Future<void> executeHook(String name, Hook hook, List<String> args) async {
  String? remoteName;
  String? remoteUrl;
  if (args case [final String remote, final String url]) {
    remoteName = remote;
    remoteUrl = url;
  }

  final logger = Logger();
  if (hook.verbose) {
    logger.level = Level.verbose;
  } else {
    logger.level = Level.error;
  }

  return runScoped(
    () => _run(name, hook),
    values: {
      argsProvider.overrideWith(
        () => Args(args: {'loud': hook.verbose, 'quiet': !hook.verbose}),
      ),
      loggerProvider.overrideWith(() => logger),
      gitProvider.overrideWith(
        () => GitService(remoteName: remoteName, remoteUrl: remoteUrl),
      ),
      fsProvider,
      processProvider,
      compilerProvider,
      stdoutProvider,
    },
  );
}