Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Unified Diff: utils/pub/command_lish.dart

Issue 12226077: add --preview flag to publish command (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | utils/tests/pub/pub_lish_test.dart » ('j') | utils/tests/pub/pub_lish_test.dart » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/pub/command_lish.dart
===================================================================
--- utils/pub/command_lish.dart (revision 18320)
+++ utils/pub/command_lish.dart (working copy)
@@ -32,6 +32,9 @@
var parser = new ArgParser();
// TODO(nweiz): Use HostedSource.defaultUrl as the default value once we use
// dart:io for HTTPS requests.
+ parser.addFlag('dry-run', abbr: 'n', negatable: false,
+ help: "Preview publishing the package\n"
+ "Validate but do not publish the package");
Bob Nystrom 2013/02/12 01:00:41 You can remove the "Preview..." line.
keertip 2013/02/12 05:20:20 Done.
parser.addOption('server', defaultsTo: 'https://pub.dartlang.org',
help: 'The package server to which to upload this package');
return parser;
@@ -100,9 +103,11 @@
// Validate the package.
return _validate(packageBytesFuture.then((bytes) => bytes.length))
- .then((_) => packageBytesFuture).then(_publish);
+ .then((validate) {
Bob Nystrom 2013/02/12 01:00:41 "validate" -> "isValid"
keertip 2013/02/12 05:20:20 Done.
+ if (validate) return packageBytesFuture.then(_publish);
+ });
Bob Nystrom 2013/02/12 01:00:41 The styling of this is a bit strange. How about:
keertip 2013/02/12 05:20:20 Done.
}
-
+
/// The basenames of files that are automatically excluded from archives.
final _BLACKLISTED_FILES = const ['pubspec.lock'];
@@ -146,7 +151,7 @@
}
/// Validates the package. Throws an exception if it's invalid.
- Future _validate(Future<int> packageSize) {
+ Future<bool> _validate(Future<int> packageSize) {
return Validator.runAll(entrypoint, packageSize).then((pair) {
var errors = pair.first;
var warnings = pair.last;
@@ -158,6 +163,12 @@
"http://pub.dartlang.org/doc/pub-lish.html.\n";
Bob Nystrom 2013/02/12 01:00:41 Instead of throwing, just use log.error() to print
keertip 2013/02/12 05:20:20 With this change, publish will return with exitcod
Bob Nystrom 2013/02/12 19:00:57 Hmm. Good point. I think I'm OK with that for now
}
+ if (commandOptions['dry-run']){
+ var s = warnings.length == 1 ? '' : 's';
+ log.warning("Package has ${warnings.length} warning$s.");
+ return new Future.immediate(false);
Bob Nystrom 2013/02/12 01:00:41 You don't need Future here, just "return false;"
keertip 2013/02/12 05:20:20 Done.
+ }
+
var message = 'Looks great! Are you ready to upload your package';
if (!warnings.isEmpty) {
@@ -167,6 +178,7 @@
return confirm(message).then((confirmed) {
if (!confirmed) throw "Package upload canceled.";
Bob Nystrom 2013/02/12 01:00:41 Instead of throwing here, do log.message() then re
keertip 2013/02/12 05:20:20 Done.
+ return new Future.immediate(true);
Bob Nystrom 2013/02/12 01:00:41 Just "return true".
keertip 2013/02/12 05:20:20 Done.
});
});
}
« no previous file with comments | « no previous file | utils/tests/pub/pub_lish_test.dart » ('j') | utils/tests/pub/pub_lish_test.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698