| OLD | NEW |
| 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.global_packages; | 5 library pub.global_packages; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert'; |
| 8 import 'dart:io'; | 9 import 'dart:io'; |
| 9 | 10 |
| 10 import 'package:path/path.dart' as p; | 11 import 'package:path/path.dart' as p; |
| 11 import 'package:barback/barback.dart'; | 12 import 'package:barback/barback.dart'; |
| 12 import 'package:pub_semver/pub_semver.dart'; | 13 import 'package:pub_semver/pub_semver.dart'; |
| 13 | 14 |
| 14 import 'barback/asset_environment.dart'; | 15 import 'barback/asset_environment.dart'; |
| 15 import 'entrypoint.dart'; | 16 import 'entrypoint.dart'; |
| 16 import 'exceptions.dart'; | 17 import 'exceptions.dart'; |
| 17 import 'executable.dart' as exe; | 18 import 'executable.dart' as exe; |
| (...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 # If it is, we need to delete it and run "pub global" manually. | 688 # If it is, we need to delete it and run "pub global" manually. |
| 688 exit_code=\$? | 689 exit_code=\$? |
| 689 if [ \$exit_code != 253 ]; then | 690 if [ \$exit_code != 253 ]; then |
| 690 exit \$exit_code | 691 exit \$exit_code |
| 691 fi | 692 fi |
| 692 | 693 |
| 693 pub global run ${package.name}:$script "\$@" | 694 pub global run ${package.name}:$script "\$@" |
| 694 """; | 695 """; |
| 695 } | 696 } |
| 696 | 697 |
| 697 writeTextFile(binStubPath, bash); | 698 // Write this as the system encoding since the system is going to execute |
| 699 // it and it might contain non-ASCII caharacters in the pathnames. |
| 700 writeTextFile(binStubPath, bash, encoding: const SystemEncoding()); |
| 698 | 701 |
| 699 // Make it executable. | 702 // Make it executable. |
| 700 var result = Process.runSync('chmod', ['+x', binStubPath]); | 703 var result = Process.runSync('chmod', ['+x', binStubPath]); |
| 701 if (result.exitCode != 0) { | 704 if (result.exitCode != 0) { |
| 702 // Couldn't make it executable so don't leave it laying around. | 705 // Couldn't make it executable so don't leave it laying around. |
| 703 try { | 706 try { |
| 704 deleteEntry(binStubPath); | 707 deleteEntry(binStubPath); |
| 705 } on IOException catch (err) { | 708 } on IOException catch (err) { |
| 706 // Do nothing. We're going to fail below anyway. | 709 // Do nothing. We're going to fail below anyway. |
| 707 log.fine("Could not delete binstub:\n$err"); | 710 log.fine("Could not delete binstub:\n$err"); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 } | 778 } |
| 776 | 779 |
| 777 /// Returns the value of the property named [name] in the bin stub script | 780 /// Returns the value of the property named [name] in the bin stub script |
| 778 /// [source]. | 781 /// [source]. |
| 779 String _binStubProperty(String source, String name) { | 782 String _binStubProperty(String source, String name) { |
| 780 var pattern = new RegExp(quoteRegExp(name) + r": ([a-zA-Z0-9_-]+)"); | 783 var pattern = new RegExp(quoteRegExp(name) + r": ([a-zA-Z0-9_-]+)"); |
| 781 var match = pattern.firstMatch(source); | 784 var match = pattern.firstMatch(source); |
| 782 return match == null ? null : match[1]; | 785 return match == null ? null : match[1]; |
| 783 } | 786 } |
| 784 } | 787 } |
| OLD | NEW |