blob: 5455c20dfd0de7da4ced77e6997d02a0aca9e854 [file] [log] [blame] [edit]
// Copyright 2023 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
import 'package:args/command_runner.dart';
import 'package:io/io.dart';
import '../utils.dart';
import 'shared.dart';
class SyncCommand extends Command {
SyncCommand() {
argParser.addUpdateOnPathFlag();
}
@override
String get name => 'sync';
@override
String get description =>
'Syncs the DevTools repo to HEAD, upgrades dependencies, and performs code generation.';
@override
Future run() async {
final processManager = ProcessManager();
await processManager.runProcess(
CliCommand.git(['pull', 'upstream', 'master']),
);
final updateOnPath =
argResults![SharedCommandArgs.updateOnPath.flagName] as bool;
await processManager.runProcess(
CliCommand.tool([
'update-flutter-sdk',
if (updateOnPath) SharedCommandArgs.updateOnPath.asArg(),
]),
);
await processManager.runProcess(
CliCommand.tool(['generate-code', '--upgrade']),
);
}
}