main function
Implementation
Future<void> main(List<String> args) async {
final bool veryVerbose = args.contains('-vv');
final bool verbose =
args.contains('-v') || args.contains('--verbose') || veryVerbose;
final MigrateBaseDependencies baseDependencies = MigrateBaseDependencies();
final List<MigrateCommand> commands = <MigrateCommand>[
MigrateStartCommand(
verbose: verbose,
logger: baseDependencies.logger,
fileSystem: baseDependencies.fileSystem,
processManager: baseDependencies.processManager,
),
MigrateStatusCommand(
verbose: verbose,
logger: baseDependencies.logger,
fileSystem: baseDependencies.fileSystem,
processManager: baseDependencies.processManager,
),
MigrateAbandonCommand(
logger: baseDependencies.logger,
fileSystem: baseDependencies.fileSystem,
terminal: baseDependencies.terminal,
processManager: baseDependencies.processManager),
MigrateApplyCommand(
verbose: verbose,
logger: baseDependencies.logger,
fileSystem: baseDependencies.fileSystem,
terminal: baseDependencies.terminal,
processManager: baseDependencies.processManager),
];
final MigrateCommandRunner runner = MigrateCommandRunner();
commands.forEach(runner.addCommand);
await runner.run(args);
await _exit(0, baseDependencies,
shutdownHooks: baseDependencies.fileSystem.shutdownHooks);
await baseDependencies.fileSystem.dispose();
}