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

Side by Side Diff: lib/src/executable.dart

Issue 1292003005: Don't crash for pre-1.12 global packages. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | lib/src/global_packages.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library pub.executable; 5 library pub.executable;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:barback/barback.dart'; 10 import 'package:barback/barback.dart';
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 if (package != entrypoint.root.name) { 104 if (package != entrypoint.root.name) {
105 message += " in package ${log.bold(package)}"; 105 message += " in package ${log.bold(package)}";
106 } 106 }
107 log.error("$message."); 107 log.error("$message.");
108 return exit_codes.NO_INPUT; 108 return exit_codes.NO_INPUT;
109 } 109 }
110 110
111 // If we're running an executable directly from the filesystem, make sure that 111 // If we're running an executable directly from the filesystem, make sure that
112 // it knows where to load the packages. If it's a dependency's executable, for 112 // it knows where to load the packages. If it's a dependency's executable, for
113 // example, it may not have the right packages directory itself. 113 // example, it may not have the right packages directory itself.
114 if (executableUrl.scheme == 'file' || executableUrl.scheme == '') { 114 //
115 // We don't do this for global executables because older ones may not have a
116 // `.packages` file generated. If they do, the VM's logic will find it
117 // automatically.
118 if (!isGlobal &&
119 (executableUrl.scheme == 'file' || executableUrl.scheme == '')) {
115 // We use an absolute path here not because the VM insists but because it's 120 // We use an absolute path here not because the VM insists but because it's
116 // helpful for the subprocess to be able to spawn Dart with 121 // helpful for the subprocess to be able to spawn Dart with
117 // Platform.executableArguments and have that work regardless of the working 122 // Platform.executableArguments and have that work regardless of the working
118 // directory. 123 // directory.
119 vmArgs.add('--packages=${p.toUri(p.absolute(entrypoint.packagesFile))}'); 124 vmArgs.add('--packages=${p.toUri(p.absolute(entrypoint.packagesFile))}');
120 } 125 }
121 126
122 vmArgs.add(executableUrl.toString()); 127 vmArgs.add(executableUrl.toString());
123 vmArgs.addAll(args); 128 vmArgs.addAll(args);
124 129
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 Future<int> _runCachedExecutable(Entrypoint entrypoint, String snapshotPath, 280 Future<int> _runCachedExecutable(Entrypoint entrypoint, String snapshotPath,
276 List<String> args, {bool checked: false}) { 281 List<String> args, {bool checked: false}) {
277 return runSnapshot(snapshotPath, args, 282 return runSnapshot(snapshotPath, args,
278 packagesFile: entrypoint.packagesFile, 283 packagesFile: entrypoint.packagesFile,
279 checked: checked, 284 checked: checked,
280 recompile: () { 285 recompile: () {
281 log.fine("Precompiled executable is out of date."); 286 log.fine("Precompiled executable is out of date.");
282 return entrypoint.precompileExecutables(); 287 return entrypoint.precompileExecutables();
283 }); 288 });
284 } 289 }
OLDNEW
« no previous file with comments | « no previous file | lib/src/global_packages.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698