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

Side by Side Diff: utils/pub/pub.dart

Issue 12079112: Make a bunch of stuff in pub synchronous. (Closed) Base URL: https://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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// The main entrypoint for the pub command line application. 5 /// The main entrypoint for the pub command line application.
6 library pub; 6 library pub;
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import '../../pkg/args/lib/args.dart'; 9 import '../../pkg/args/lib/args.dart';
10 import '../../pkg/path/lib/path.dart' as path; 10 import '../../pkg/path/lib/path.dart' as path;
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 } 231 }
232 232
233 exit(_chooseExitCode(error)); 233 exit(_chooseExitCode(error));
234 } 234 }
235 235
236 var future = new Future.immediate(null); 236 var future = new Future.immediate(null);
237 if (requiresEntrypoint) { 237 if (requiresEntrypoint) {
238 // TODO(rnystrom): Will eventually need better logic to walk up 238 // TODO(rnystrom): Will eventually need better logic to walk up
239 // subdirectories until we hit one that looks package-like. For now, just 239 // subdirectories until we hit one that looks package-like. For now, just
240 // assume the cwd is it. 240 // assume the cwd is it.
241 future = Entrypoint.load(path.current, cache); 241 future = defer(() => new Entrypoint(path.current, cache));
nweiz 2013/02/01 02:05:55 I think this slightly arcane control flow is an ar
Bob Nystrom 2013/02/01 23:17:21 Beautiful. Tweaked it a bit more, but that's great
242 } 242 }
243 243
244 future = future.then((entrypoint) { 244 future = future.then((entrypoint) {
245 this.entrypoint = entrypoint; 245 this.entrypoint = entrypoint;
246 try { 246 try {
247 var commandFuture = onRun(); 247 var commandFuture = onRun();
248 if (commandFuture == null) return true; 248 if (commandFuture == null) return true;
249 249
250 return commandFuture; 250 return commandFuture;
251 } catch (error, trace) { 251 } catch (error, trace) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 if (exception is HttpException || exception is HttpParserException || 299 if (exception is HttpException || exception is HttpParserException ||
300 exception is SocketIOException || exception is PubHttpException) { 300 exception is SocketIOException || exception is PubHttpException) {
301 return exit_codes.UNAVAILABLE; 301 return exit_codes.UNAVAILABLE;
302 } else if (exception is FormatException) { 302 } else if (exception is FormatException) {
303 return exit_codes.DATA; 303 return exit_codes.DATA;
304 } else { 304 } else {
305 return 1; 305 return 1;
306 } 306 }
307 } 307 }
308 } 308 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698