| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Holds a couple utility functions used at various places in the system. | 5 /// Holds a couple utility functions used at various places in the system. |
| 6 library dev_compiler.src.utils; | 6 library dev_compiler.src.utils; |
| 7 | 7 |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import 'package:path/path.dart' as path; | 10 import 'package:path/path.dart' as path; |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 return new SourceSpan(locationForOffset(unit, uri, begin), | 291 return new SourceSpan(locationForOffset(unit, uri, begin), |
| 292 locationForOffset(unit, uri, end), '$text'); | 292 locationForOffset(unit, uri, end), '$text'); |
| 293 } | 293 } |
| 294 | 294 |
| 295 /// Computes a hash for the given contents. | 295 /// Computes a hash for the given contents. |
| 296 String computeHash(String contents) { | 296 String computeHash(String contents) { |
| 297 if (contents == null || contents == '') return null; | 297 if (contents == null || contents == '') return null; |
| 298 return CryptoUtils.bytesToHex((new MD5()..add(contents.codeUnits)).close()); | 298 return CryptoUtils.bytesToHex((new MD5()..add(contents.codeUnits)).close()); |
| 299 } | 299 } |
| 300 | 300 |
| 301 String resourceOutputPath(Uri resourceUri) => resourceUri.path; | 301 String resourceOutputPath(Uri resourceUri) { |
| 302 if (resourceUri.scheme == 'package') return resourceUri.path; |
| 303 |
| 304 // Only support file:/// urls for resources in the dev_compiler package |
| 305 if (resourceUri.scheme != 'file') return null; |
| 306 var segments = resourceUri.pathSegments; |
| 307 var len = segments.length; |
| 308 if (segments.length < 4 || |
| 309 segments[len - 2] != 'runtime' || |
| 310 segments[len - 3] != 'lib' || |
| 311 // If loaded from sources this will be exactly dev_compiler, otherwise it |
| 312 // can be the name in the pub cache (typically dev_compiler-version). |
| 313 !segments[len - 4].startsWith('dev_compiler')) { |
| 314 return null; |
| 315 } |
| 316 return path.joinAll(['dev_compiler']..addAll(segments.skip(len - 2))); |
| 317 } |
| OLD | NEW |