blob: 141a229ce5a18c4e5381b2680000a0671bcc570c [file] [log] [blame]
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import '../command.dart';
import '../log.dart' as log;
import '../solver.dart';
/// Handles the `upgrade` pub command.
class UpgradeCommand extends PubCommand {
String get name => "upgrade";
String get description =>
"Upgrade the current package's dependencies to latest versions.";
String get invocation => "pub upgrade [dependencies...]";
String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-upgrade.html";
List<String> get aliases => const ["update"];
bool get isOffline => argResults['offline'];
UpgradeCommand() {
argParser.addFlag('offline',
help: 'Use cached packages instead of accessing the network.');
argParser.addFlag('dry-run',
abbr: 'n',
negatable: false,
help: "Report what dependencies would change but don't change any.");
argParser.addFlag('precompile',
defaultsTo: true,
help: "Precompile executables and transformed dependencies.");
argParser.addFlag('packages-dir',
negatable: true,
help: "Generate a packages/ directory when installing packages.");
}
Future run() async {
await entrypoint.acquireDependencies(SolveType.UPGRADE,
useLatest: argResults.rest,
dryRun: argResults['dry-run'],
precompile: argResults['precompile'],
packagesDir: argResults['packages-dir']);
if (isOffline) {
log.warning("Warning: Upgrading when offline may not update you to the "
"latest versions of your dependencies.");
}
}
}