installPackage function
Implementation
Future<void> installPackage(String name) async {
var response =
await http.get(Uri.parse('https://pub.dev/api/packages/$name'));
if (response.statusCode == HttpStatus.notFound) {
print('${ColorsText.red} ✗ Package not found: $name${ColorsText.reset}');
print('${ColorsText.gray} ${response.body}${ColorsText.reset}');
} else if (response.statusCode == 200) {
Map<String, dynamic> data = json.decode(response.body);
String latestVersion =
name == 'responsive_framework' ? '0.2.0' : data['latest']['version'];
final pubspec = File('pubspec.yaml').readAsStringSync();
if (!pubspec.contains(name)) {
final updatedPubspec = pubspec.replaceFirst(
'dependencies:\n',
"dependencies:\n $name: ^$latestVersion\n",
);
File('pubspec.yaml').writeAsStringSync(updatedPubspec);
print(
'${ColorsText.green} ✓${ColorsText.reset} Installed: ${ColorsText.cyan}$name${ColorsText.reset} ${ColorsText.gray}^$latestVersion${ColorsText.reset}');
} else {
print(
'${ColorsText.gray} - Already installed: $name${ColorsText.reset}');
}
}
}