detectProjectType static method
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;
}