detectProjectType static method

ProjectType detectProjectType(
  1. String directory
)

Auto-detect project type from directory

Implementation

static ProjectType detectProjectType(String directory) {
  final checks = {
    'pubspec.yaml': ProjectType.dart,
    'requirements.txt': ProjectType.python,
    'pyproject.toml': ProjectType.python,
    'setup.py': ProjectType.python,
    'Pipfile': ProjectType.python,
    'package.json': ProjectType.javascript,
    'tsconfig.json': ProjectType.typescript,
    'go.mod': ProjectType.go,
    'Cargo.toml': ProjectType.rust,
    'pom.xml': ProjectType.java,
    'build.gradle': ProjectType.java,
    'build.gradle.kts': ProjectType.kotlin,
    'Package.swift': ProjectType.swift,
    'CMakeLists.txt': ProjectType.cpp,
    'Gemfile': ProjectType.ruby,
    'composer.json': ProjectType.php,
    'index.html': ProjectType.web,
  };

  for (final entry in checks.entries) {
    final file = File('$directory/${entry.key}');
    if (file.existsSync()) {
      return entry.value;
    }
  }

  return ProjectType.generic;
}