definedHooks method

(List<DefinedHook>, int?) definedHooks(
  1. String root
)

Implementation

(List<DefinedHook>, int?) definedHooks(String root) {
  final definedHooksDir = fs.directory(fs.path.join(root, 'hooks'));

  if (!definedHooksDir.existsSync()) {
    logger.err('No hooks defined');
    return ([], 1);
  }

  final dartGlob = Glob('*.dart');
  final dartFound =
      dartGlob.listFileSystemSync(fs, root: definedHooksDir.path);

  final shellGlob = Glob('*.sh');
  final shellFound =
      shellGlob.listFileSystemSync(fs, root: definedHooksDir.path);

  final definedHooks = [
    for (final entity in dartFound)
      if (entity is File) DefinedHook(entity.path),
    for (final entity in shellFound)
      if (entity is File) DefinedHook(entity.path),
  ];

  if (definedHooks.isEmpty) {
    logger.err('No hooks to register');
    return ([], 1);
  }

  final s = definedHooks.length > 1 ? 's' : '';
  logger.info(green.wrap('Found ${definedHooks.length} hook$s'));
  for (final hook in definedHooks) {
    logger.info(darkGray.wrap('  - ${p.basename(hook.fileName)}'));
  }
  logger.write('\n');

  return (definedHooks, null);
}