replaceLibFolder static method
Recursively copies old lib folder into new lib folder
Implementation
static void replaceLibFolder(String oldLibPath, String newLibPath) {
final oldLibDir = Directory(oldLibPath);
if (!oldLibDir.existsSync()) {
throw Exception('Old lib folder not found at $oldLibPath');
}
final newLibDir = Directory(newLibPath);
if (!newLibDir.existsSync()) {
newLibDir.createSync(recursive: true);
}
int copiedFiles = 0;
void copyRecursive(Directory source, Directory destination) {
for (var entity in source.listSync(recursive: false)) {
final newPath = p.join(destination.path, p.basename(entity.path));
if (entity is File) {
final parentDir = Directory(p.dirname(newPath));
if (!parentDir.existsSync()) parentDir.createSync(recursive: true);
entity.copySync(newPath);
} else if (entity is Directory) {
final newSubDir = Directory(newPath);
if (!newSubDir.existsSync()) newSubDir.createSync();
copyRecursive(entity, newSubDir);
}
}
}
copyRecursive(oldLibDir, newLibDir);
if (copiedFiles < 2) {
print('lib/ folder replaced successfully. $copiedFiles file copied.');
} else {
print('lib/ folder replaced successfully. $copiedFiles files copied.');
}
}