Browse Source

add last change #28

pull/29/head
o2sh 7 years ago
parent
commit
f0b718ec26
  1. BIN
      assets/cpp.png
  2. BIN
      assets/haskell.png
  3. 12
      resources/cpp.ascii
  4. 33
      src/main.rs

BIN
assets/cpp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 43 KiB

BIN
assets/haskell.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 51 KiB

12
resources/cpp.ascii

@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
_____
/ ____|_ _
| | _| |_ _| |_
| | |_ _|_ _|
| |____|_| |_|
\_____|
{0} _____
{0} / ____|{1}_ _
{0} | | {1}_| |_ _| |_
{0} | | {1}|_ _|_ _|
{0} | |____{1}|_| |_|
{0} \_____|

33
src/main.rs

@ -30,6 +30,7 @@ struct Info { @@ -30,6 +30,7 @@ struct Info {
dominant_language: Language,
languages: Vec<(Language, f64)>,
authors: Vec<String>,
last_change: String,
repo: String,
commits: String,
number_of_lines: usize,
@ -99,6 +100,13 @@ impl fmt::Display for Info { @@ -99,6 +100,13 @@ impl fmt::Display for Info {
}
}
writeln!(
buffer,
"{}{}",
"Last change: ".color(color).bold(),
self.last_change
)?;
writeln!(buffer, "{}{}", "Repo: ".color(color).bold(), self.repo)?;
writeln!(
buffer,
@ -109,7 +117,7 @@ impl fmt::Display for Info { @@ -109,7 +117,7 @@ impl fmt::Display for Info {
writeln!(
buffer,
"{}{}",
"Number of lines: ".color(color).bold(),
"Lines of code: ".color(color).bold(),
self.number_of_lines
)?;
writeln!(
@ -288,6 +296,7 @@ fn main() -> Result<()> { @@ -288,6 +296,7 @@ fn main() -> Result<()> {
let config = get_configuration(&dir)?;
let version = get_version(&dir)?;
let commits = get_commits(&dir)?;
let last_change = get_last_change(&dir)?;
let info = Info {
project_name: config.repository_name,
@ -295,6 +304,7 @@ fn main() -> Result<()> { @@ -295,6 +304,7 @@ fn main() -> Result<()> {
dominant_language,
languages: languages_stat_vec,
authors,
last_change,
repo: config.repository_url,
commits,
number_of_lines: get_total_loc(&tokei_langs),
@ -380,6 +390,25 @@ fn get_version(dir: &str) -> Result<String> { @@ -380,6 +390,25 @@ fn get_version(dir: &str) -> Result<String> {
}
}
fn get_last_change(dir: &str) -> Result<String> {
let output = Command::new("git")
.arg("-C")
.arg(dir)
.arg("log")
.arg("-1")
.arg("--format=%cr")
.output()
.expect("Failed to execute git.");
let output = String::from_utf8_lossy(&output.stdout);
if output == "" {
Ok("??".into())
} else {
Ok(output.to_string().replace('\n', ""))
}
}
fn get_commits(dir: &str) -> Result<String> {
let output = Command::new("git")
.arg("-C")
@ -576,7 +605,7 @@ impl Info { @@ -576,7 +605,7 @@ impl Info {
match self.dominant_language {
Language::C => vec![Color::BrightBlue, Color::Blue],
Language::Clojure => vec![Color::BrightBlue, Color::BrightGreen],
Language::Cpp => vec![Color::Yellow],
Language::Cpp => vec![Color::Yellow, Color::Cyan],
Language::Csharp => vec![Color::White],
Language::Go => vec![Color::White],
Language::Haskell => vec![Color::BrightBlue, Color::BrightMagenta, Color::Blue],

Loading…
Cancel
Save