extractPackageName static method

String? extractPackageName(
  1. File gradleFile
)

Extract package name from build.gradle or build.gradle.kts

Implementation

static String? extractPackageName(File gradleFile) {
  try {
    final content = gradleFile.readAsStringSync();

    // Try to find namespace (newer Gradle format)
    final namespacePattern =
        RegExp(r'namespace\s*[=:]\s*["' ']([^"' ']+)["' ']');
    final namespaceMatch = namespacePattern.firstMatch(content);
    if (namespaceMatch != null) {
      return namespaceMatch.group(1);
    }

    // Try to find package in android block (older format)
    // Using (?s) for dotAll and (?m) for multiline
    final androidBlockPattern = RegExp(
      r'(?s)android\s*\{[^}]*package\s*[=:]\s*["' ']([^"' ']+)["' ']',
    );
    final androidBlockMatch = androidBlockPattern.firstMatch(content);
    if (androidBlockMatch != null) {
      return androidBlockMatch.group(1);
    }

    return null;
  } catch (e) {
    return null;
  }
}