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 {
  if (shouldSkipHooks()) {
    exit(0);
  }

  final stdinContent = await _readStdin();
  final bound = bindHookInvocation(
    name: name,
    hook: hook,
    args: args,
    stdinContent: stdinContent,
  );
  final remoteName = bound.remoteName;
  final remoteUrl = bound.remoteUrl;
  final boundHook = bound.boundHook;
  final context = bound.context;

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

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