Skip to content

Commit 8955e83

Browse files
authored
feat: Add upgrade command to Serverpod CLI. (#1988)
1 parent bf08700 commit 8955e83

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

tools/serverpod_cli/bin/serverpod_cli.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:serverpod_cli/src/commands/generate_pubspecs.dart';
1010
import 'package:serverpod_cli/src/commands/generate.dart';
1111
import 'package:serverpod_cli/src/commands/language_server.dart';
1212
import 'package:serverpod_cli/src/commands/create_migration.dart';
13+
import 'package:serverpod_cli/src/commands/upgrade.dart';
1314
import 'package:serverpod_cli/src/commands/version.dart';
1415
import 'package:serverpod_cli/src/generated/version.dart';
1516
import 'package:serverpod_cli/src/logger/logger.dart';
@@ -65,6 +66,7 @@ ServerpodCommandRunner buildCommandRunner() {
6566
..addCommand(LanguageServerCommand())
6667
..addCommand(CreateMigrationCommand())
6768
..addCommand(CreateRepairMigrationCommand())
69+
..addCommand(UpgradeCommand())
6870
..addCommand(VersionCommand());
6971
}
7072

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import 'dart:convert';
2+
import 'dart:io';
3+
4+
import 'package:serverpod_cli/src/logger/logger.dart';
5+
import 'package:serverpod_cli/src/runner/serverpod_command.dart';
6+
7+
import '../generated/version.dart';
8+
9+
class UpgradeCommand extends ServerpodCommand {
10+
@override
11+
final name = 'upgrade';
12+
13+
@override
14+
final description = 'Upgrade Serverpod to the latest version.';
15+
16+
@override
17+
void run() async {
18+
var success = await log.progress('Updating Serverpod Cli...', () async {
19+
log.debug('Running `dart pub global activate serverpod_cli`...');
20+
var startProcess = await Process.start(
21+
'dart', ['pub', 'global', 'activate', 'serverpod_cli']);
22+
startProcess.stdout.transform(const Utf8Decoder()).listen(log.debug);
23+
startProcess.stderr.transform(const Utf8Decoder()).listen(log.error);
24+
return await startProcess.exitCode == 0;
25+
});
26+
27+
if (success) {
28+
log.info('Serverpod is up to date: $templateVersion version.');
29+
} else {
30+
log.info('Failed to update Serverpod.');
31+
}
32+
}
33+
}

0 commit comments

Comments
 (0)