Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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.package; | 5 library pub.package; |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 | 8 |
| 9 import 'package:barback/barback.dart'; | 9 import 'package:barback/barback.dart'; |
| 10 import 'package:path/path.dart' as p; | 10 import 'package:path/path.dart' as p; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 108 })); | 108 })); |
| 109 } | 109 } |
| 110 | 110 |
| 111 /// Returns whether or not this package is in a Git repo. | 111 /// Returns whether or not this package is in a Git repo. |
| 112 bool get _inGitRepo { | 112 bool get _inGitRepo { |
| 113 if (_inGitRepoCache != null) return _inGitRepoCache; | 113 if (_inGitRepoCache != null) return _inGitRepoCache; |
| 114 | 114 |
| 115 if (dir == null || !git.isInstalled) { | 115 if (dir == null || !git.isInstalled) { |
| 116 _inGitRepoCache = false; | 116 _inGitRepoCache = false; |
| 117 } else { | 117 } else { |
| 118 try { | 118 // If the entire package directory is ignored, don't consider it part of a |
| 119 git.runSync(['rev-parse'], workingDir: dir); | 119 // git repo. `git check-ignore` will return a status code of 0 for |
| 120 _inGitRepoCache = true; | 120 // ignored, 1 for not ignored, and 128 for not a Git repo. |
| 121 } on git.GitException catch (_) { | 121 var result = runProcessSync(git.command, ['check-ignore', '--quiet', '.'], |
| 122 _inGitRepoCache = false; | 122 workingDir: dir); |
| 123 } | 123 _inGitRepoCache = result.exitCode == 1; |
|
Bob Nystrom
2015/08/26 23:19:02
Instead of making git.command public, how about mo
nweiz
2015/08/27 19:04:33
I'll do this if you want, but I think a lot of the
| |
| 124 } | 124 } |
| 125 | 125 |
| 126 return _inGitRepoCache; | 126 return _inGitRepoCache; |
| 127 } | 127 } |
| 128 bool _inGitRepoCache; | 128 bool _inGitRepoCache; |
| 129 | 129 |
| 130 /// Loads the package whose root directory is [packageDir]. | 130 /// Loads the package whose root directory is [packageDir]. |
| 131 /// | 131 /// |
| 132 /// [name] is the expected name of that package (e.g. the name given in the | 132 /// [name] is the expected name of that package (e.g. the name given in the |
| 133 /// dependency), or `null` if the package being loaded is the entrypoint | 133 /// dependency), or `null` if the package being loaded is the entrypoint |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 435 | 435 |
| 436 bool operator ==(other) { | 436 bool operator ==(other) { |
| 437 // TODO(rnystrom): We're assuming here that we don't need to delve into the | 437 // TODO(rnystrom): We're assuming here that we don't need to delve into the |
| 438 // description. | 438 // description. |
| 439 return other is PackageDep && | 439 return other is PackageDep && |
| 440 other.name == name && | 440 other.name == name && |
| 441 other.source == source && | 441 other.source == source && |
| 442 other.constraint == constraint; | 442 other.constraint == constraint; |
| 443 } | 443 } |
| 444 } | 444 } |
| OLD | NEW |