setBuildGradleKey function

void setBuildGradleKey(
  1. String key,
  2. String value, {
  3. FileSystem? fs,
  4. Directory? workingDir,
})

Implementation

void setBuildGradleKey(String key, String value,
    {FileSystem? fs, Directory? workingDir}) {
  final _fs = fs ?? const LocalFileSystem();
  final wd = getCurrentDir(workingDir, fs: _fs).path;
  final buildFile = _fs.file(
    path.join(wd, 'android', 'app', 'build.gradle'),
  );
  final lines = buildFile.readAsStringSync().split('\n');
  final index = lines.indexWhere((x) => x.trim().startsWith(key));
  final line = lines[index];
  final oldValue = line.split(' ').last;
  lines[index] = lines[index].replaceAll(oldValue, value);
  logger.debug('Setting $key: $value from ${buildFile.path}');
  buildFile.writeAsStringSync(lines.join('\n'));
}