getFlutterPath function

String? getFlutterPath()

Get Flutter installation path

Implementation

String? getFlutterPath() {
  // First check if flutter is available using PowerShell's Get-Command
  try {
    final result = Process.runSync('powershell', [
      '-Command',
      'Get-Command flutter | Select-Object -ExpandProperty Source'
    ]);
    if (result.exitCode == 0) {
      final flutterPath = result.stdout.toString().trim();
      if (flutterPath.isNotEmpty &&
          flutterPath !=
              'Get-Command : The term \'flutter\' is not recognized') {
        return flutterPath;
      }
    }
  } catch (e) {
    // Ignore errors and continue with path checking
  }

  // Common Flutter installation paths on Windows
  final possiblePaths = [
    'C:\\flutter\\bin\\flutter.bat',
    'C:\\src\\flutter\\bin\\flutter.bat',
    'C:\\Users\\${Platform.environment['USERNAME']}\\flutter\\bin\\flutter.bat',
    'C:\\Users\\${Platform.environment['USERNAME']}\\Documents\\flutter\\bin\\flutter.bat',
    'C:\\Users\\${Platform.environment['USERNAME']}\\Desktop\\flutter\\bin\\flutter.bat',
    'C:\\Users\\${Platform.environment['USERNAME']}\\dev\\flutter\\bin\\flutter.bat',
    'C:\\Users\\${Platform.environment['USERNAME']}\\AppData\\Local\\flutter\\bin\\flutter.bat',
    'C:\\Program Files\\flutter\\bin\\flutter.bat',
    'C:\\Program Files (x86)\\flutter\\bin\\flutter.bat',
  ];

  for (final path in possiblePaths) {
    if (File(path).existsSync()) {
      return path;
    }
  }
  return null;
}