summaryrefslogtreecommitdiffstats
path: root/src/options.rs
diff options
context:
space:
mode:
authorBen S <ogham@bsago.me>2015-08-03 18:44:33 +0100
committerBen S <ogham@bsago.me>2015-08-03 18:44:33 +0100
commitd547c3f5d788f202de353938eaaedbb67a3624df (patch)
tree84adcb8f14f1b1c53abfdf1d3666d2573a3e3f90 /src/options.rs
parente1f4ea92151901d97bfe042564342bc62ef442e5 (diff)
Fix bug where Git repos were always queried
This is very slow (see #28) at the moment, so there's an option to switch off repo discovery. However, they were still always being queried. Now, if there's no Git option in the flags, it won't try to discover a repo.
Diffstat (limited to 'src/options.rs')
-rw-r--r--src/options.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/options.rs b/src/options.rs
index 08e3e9b..3a53343 100644
--- a/src/options.rs
+++ b/src/options.rs
@@ -110,6 +110,17 @@ impl Options {
pub fn transform_files(&self, files: &mut Vec<File>) {
self.filter.transform_files(files)
}
+
+ /// Whether the View specified in this set of options includes a Git
+ /// status column. It's only worth trying to discover a repository if the
+ /// results will end up being displayed.
+ pub fn should_scan_for_git(&self) -> bool {
+ match self.view {
+ View::Details(Details { columns: Some(cols), .. }) => cols.should_scan_for_git(),
+ View::GridDetails(GridDetails { details: Details { columns: Some(cols), .. }, .. }) => cols.should_scan_for_git(),
+ _ => false,
+ }
+ }
}
@@ -572,6 +583,10 @@ impl Columns {
})
}
+ pub fn should_scan_for_git(&self) -> bool {
+ self.git
+ }
+
pub fn for_dir(&self, dir: Option<&Dir>) -> Vec<Column> {
let mut columns = vec![];
@@ -611,7 +626,7 @@ impl Columns {
if cfg!(feature="git") {
if let Some(d) = dir {
- if self.git && d.has_git_repo() {
+ if self.should_scan_for_git() && d.has_git_repo() {
columns.push(GitStatus);
}
}