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

Side by Side Diff: pkg/docgen/lib/src/io.dart

Issue 1364553002: remove docgen source and targets from build (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: remove scripts Created 5 years, 3 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 | « pkg/docgen/lib/src/generator.dart ('k') | pkg/docgen/lib/src/library_helpers.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 /// This is a helper library to make working with io easier.
6 library docgen.io;
7
8 // TODO(janicejl): listDir, canonicalize, resolveLink, and linkExists are from
9 // pub/lib/src/io.dart. If the io.dart file becomes a package, should remove
10 // copy of the functions.
11
12 import 'dart:io';
13 import 'package:path/path.dart' as path;
14
15 /// Lists the contents of [dir].
16 ///
17 /// If [recursive] is `true`, lists subdirectory contents (defaults to `false`).
18 ///
19 /// Excludes files and directories beginning with `.`
20 ///
21 /// The returned paths are guaranteed to begin with [dir].
22 List<String> listDir(String dir, {bool recursive: false,
23 List<FileSystemEntity> listDir(Directory dir)}) {
24 if (listDir == null) listDir = (Directory dir) => dir.listSync();
25
26 return _doList(dir, new Set<String>(), recursive, listDir);
27 }
28
29 List<String> _doList(String dir, Set<String> listedDirectories, bool recurse,
30 List<FileSystemEntity> listDir(Directory dir)) {
31 var contents = <String>[];
32
33 // Avoid recursive symlinks.
34 var resolvedPath = new Directory(dir).resolveSymbolicLinksSync();
35 if (listedDirectories.contains(resolvedPath)) return [];
36
37 listedDirectories = new Set<String>.from(listedDirectories);
38 listedDirectories.add(resolvedPath);
39
40 var children = <String>[];
41 for (var entity in listDir(new Directory(dir))) {
42 // Skip hidden files and directories
43 if (path.basename(entity.path).startsWith('.')) {
44 continue;
45 }
46
47 contents.add(entity.path);
48 if (entity is Directory) {
49 // TODO(nweiz): don't manually recurse once issue 4794 is fixed.
50 // Note that once we remove the manual recursion, we'll need to
51 // explicitly filter out files in hidden directories.
52 if (recurse) {
53 children.addAll(_doList(entity.path, listedDirectories, recurse,
54 listDir));
55 }
56 }
57 }
58
59 contents.addAll(children);
60 return contents;
61 }
OLDNEW
« no previous file with comments | « pkg/docgen/lib/src/generator.dart ('k') | pkg/docgen/lib/src/library_helpers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698