diff options
Diffstat (limited to 'src/project/git.rs')
-rw-r--r-- | src/project/git.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/project/git.rs b/src/project/git.rs index 17573c3..876af1c 100644 --- a/src/project/git.rs +++ b/src/project/git.rs @@ -1,8 +1,11 @@ use git2::{BranchType, Repository}; use ignore::DirEntry; +use onefetch::ui::printer::Printer; +use std::io; use std::{cmp::Ordering, path::PathBuf, time::Duration}; use crate::project::Error; +use crate::project::Preview; use crate::project::Timestamp; use crate::Project; @@ -57,6 +60,23 @@ impl Project for GitProject { } } +impl Preview for GitProject { + type Error = Error; + + fn preview(&self) -> Result<(), Self::Error> { + // onefetch --include-hidden --show-logo=auto + let config = onefetch::cli::Config { + input: self.path_buf.to_owned(), + ..Default::default() + }; + + let info = onefetch::info::Info::new(&config)?; + let mut printer = Printer::new(io::BufWriter::new(io::stdout()), info, config)?; + + printer.print().map_err(Into::into) + } +} + impl PartialEq for GitProject { fn eq(&self, other: &Self) -> bool { match (self.latest_commit, other.latest_commit) { |