Handle no pubspec.lock in `dependency-services apply`
diff --git a/lib/src/command/dependency_services.dart b/lib/src/command/dependency_services.dart
index 33a5263..9926731 100644
--- a/lib/src/command/dependency_services.dart
+++ b/lib/src/command/dependency_services.dart
@@ -282,9 +282,11 @@
final pubspec = entrypoint.root.pubspec;
final pubspecEditor = YamlEditor(readTextFile(entrypoint.pubspecPath));
- final lockFile = readTextFile(entrypoint.lockFilePath);
- final lockFileYaml = loadYaml(lockFile);
- final lockFileEditor = YamlEditor(lockFile);
+ final lockFile = fileExists(entrypoint.lockFilePath)
+ ? readTextFile(entrypoint.lockFilePath)
+ : null;
+ final lockFileYaml = lockFile == null ? null : loadYaml(lockFile);
+ final lockFileEditor = lockFile == null ? null : YamlEditor(lockFile);
for (final p in toApply) {
final targetPackage = p.name;
final targetVersion = p.version;
@@ -299,16 +301,18 @@
VersionConstraint.compatibleWith(targetVersion).toString());
}
- if (lockFileYaml['packages'].containsKey(targetPackage)) {
- lockFileEditor.update(
- ['packages', targetPackage, 'version'], targetVersion.toString());
+ if (lockFile != null) {
+ if (lockFileYaml['packages'].containsKey(targetPackage)) {
+ lockFileEditor.update(['packages', targetPackage, 'version'],
+ targetVersion.toString());
+ }
}
}
}
if (pubspecEditor.edits.isNotEmpty) {
writeTextFile(entrypoint.pubspecPath, pubspecEditor.toString());
}
- if (lockFileEditor.edits.isNotEmpty) {
+ if (lockFile != null && lockFileEditor.edits.isNotEmpty) {
writeTextFile(entrypoint.lockFilePath, lockFileEditor.toString());
}
await log.warningsOnlyUnlessTerminal(