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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:io'; | 6 import 'dart:io'; |
7 | 7 |
8 import 'package:glob/glob.dart'; | 8 import 'package:glob/glob.dart'; |
9 import 'package:glob/src/utils.dart'; | 9 import 'package:glob/src/utils.dart'; |
10 import 'package:path/path.dart' as p; | 10 import 'package:path/path.dart' as p; |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 {bool recursive, bool followLinks}); | 258 {bool recursive, bool followLinks}); |
259 | 259 |
260 /// Runs [callback] in two groups with two values of [listFn]: one that uses | 260 /// Runs [callback] in two groups with two values of [listFn]: one that uses |
261 /// [Glob.list], one that uses [Glob.listSync]. | 261 /// [Glob.list], one that uses [Glob.listSync]. |
262 void syncAndAsync(callback(ListFn listFn)) { | 262 void syncAndAsync(callback(ListFn listFn)) { |
263 group("async", () { | 263 group("async", () { |
264 callback((glob, {recursive: false, followLinks: true}) { | 264 callback((glob, {recursive: false, followLinks: true}) { |
265 return schedule(() { | 265 return schedule(() { |
266 return new Glob(glob, recursive: recursive) | 266 return new Glob(glob, recursive: recursive) |
267 .list(root: sandbox, followLinks: followLinks) | 267 .list(root: sandbox, followLinks: followLinks) |
268 .map((entity) { | 268 .map((entity) => p.relative(entity.path, from: sandbox)) |
269 return separatorToForwardSlash( | 269 .toList(); |
270 p.relative(entity.path, from: sandbox)); | |
271 }).toList(); | |
272 }, 'listing $glob'); | 270 }, 'listing $glob'); |
273 }); | 271 }); |
274 }); | 272 }); |
275 | 273 |
276 group("sync", () { | 274 group("sync", () { |
277 callback((glob, {recursive: false, followLinks: true}) { | 275 callback((glob, {recursive: false, followLinks: true}) { |
278 return schedule(() { | 276 return schedule(() { |
279 return new Glob(glob, recursive: recursive) | 277 return new Glob(glob, recursive: recursive) |
280 .listSync(root: sandbox, followLinks: followLinks) | 278 .listSync(root: sandbox, followLinks: followLinks) |
281 .map((entity) { | 279 .map((entity) => p.relative(entity.path, from: sandbox)) |
282 return separatorToForwardSlash( | 280 .toList(); |
283 p.relative(entity.path, from: sandbox)); | |
284 }).toList(); | |
285 }, 'listing $glob'); | 281 }, 'listing $glob'); |
286 }); | 282 }); |
287 }); | 283 }); |
288 } | 284 } |
289 | 285 |
290 void scheduleSandbox() { | 286 void scheduleSandbox() { |
291 schedule(() { | 287 schedule(() { |
292 return Directory.systemTemp.createTemp('glob_').then((dir) { | 288 return Directory.systemTemp.createTemp('glob_').then((dir) { |
293 sandbox = dir.path; | 289 sandbox = dir.path; |
294 d.defaultRoot = sandbox; | 290 d.defaultRoot = sandbox; |
295 }); | 291 }); |
296 }, 'creating sandbox'); | 292 }, 'creating sandbox'); |
297 | 293 |
298 currentSchedule.onComplete.schedule(() { | 294 currentSchedule.onComplete.schedule(() { |
299 d.defaultRoot = null; | 295 d.defaultRoot = null; |
300 if (sandbox == null) return null; | 296 if (sandbox == null) return null; |
301 var oldSandbox = sandbox; | 297 var oldSandbox = sandbox; |
302 sandbox = null; | 298 sandbox = null; |
303 return new Directory(oldSandbox).delete(recursive: true); | 299 return new Directory(oldSandbox).delete(recursive: true); |
304 }); | 300 }); |
305 } | 301 } |
OLD | NEW |