@@ -30,6 +30,7 @@ struct Info {
30
30
dominant_language : Language ,
31
31
languages : Vec < ( Language , f64 ) > ,
32
32
authors : Vec < String > ,
33
+ last_change : String ,
33
34
repo : String ,
34
35
commits : String ,
35
36
number_of_lines : usize ,
@@ -99,6 +100,13 @@ impl fmt::Display for Info {
99
100
}
100
101
}
101
102
103
+ writeln ! (
104
+ buffer,
105
+ "{}{}" ,
106
+ "Last change: " . color( color) . bold( ) ,
107
+ self . last_change
108
+ ) ?;
109
+
102
110
writeln ! ( buffer, "{}{}" , "Repo: " . color( color) . bold( ) , self . repo) ?;
103
111
writeln ! (
104
112
buffer,
@@ -109,7 +117,7 @@ impl fmt::Display for Info {
109
117
writeln ! (
110
118
buffer,
111
119
"{}{}" ,
112
- "Number of lines : " . color( color) . bold( ) ,
120
+ "Lines of code : " . color( color) . bold( ) ,
113
121
self . number_of_lines
114
122
) ?;
115
123
writeln ! (
@@ -288,13 +296,15 @@ fn main() -> Result<()> {
288
296
let config = get_configuration ( & dir) ?;
289
297
let version = get_version ( & dir) ?;
290
298
let commits = get_commits ( & dir) ?;
299
+ let last_change = get_last_change ( & dir) ?;
291
300
292
301
let info = Info {
293
302
project_name : config. repository_name ,
294
303
version,
295
304
dominant_language,
296
305
languages : languages_stat_vec,
297
306
authors,
307
+ last_change,
298
308
repo : config. repository_url ,
299
309
commits,
300
310
number_of_lines : get_total_loc ( & tokei_langs) ,
@@ -380,6 +390,25 @@ fn get_version(dir: &str) -> Result<String> {
380
390
}
381
391
}
382
392
393
+ fn get_last_change ( dir : & str ) -> Result < String > {
394
+ let output = Command :: new ( "git" )
395
+ . arg ( "-C" )
396
+ . arg ( dir)
397
+ . arg ( "log" )
398
+ . arg ( "-1" )
399
+ . arg ( "--format=%cr" )
400
+ . output ( )
401
+ . expect ( "Failed to execute git." ) ;
402
+
403
+ let output = String :: from_utf8_lossy ( & output. stdout ) ;
404
+
405
+ if output == "" {
406
+ Ok ( "??" . into ( ) )
407
+ } else {
408
+ Ok ( output. to_string ( ) . replace ( '\n' , "" ) )
409
+ }
410
+ }
411
+
383
412
fn get_commits ( dir : & str ) -> Result < String > {
384
413
let output = Command :: new ( "git" )
385
414
. arg ( "-C" )
@@ -576,7 +605,7 @@ impl Info {
576
605
match self . dominant_language {
577
606
Language :: C => vec ! [ Color :: BrightBlue , Color :: Blue ] ,
578
607
Language :: Clojure => vec ! [ Color :: BrightBlue , Color :: BrightGreen ] ,
579
- Language :: Cpp => vec ! [ Color :: Yellow ] ,
608
+ Language :: Cpp => vec ! [ Color :: Yellow , Color :: Cyan ] ,
580
609
Language :: Csharp => vec ! [ Color :: White ] ,
581
610
Language :: Go => vec ! [ Color :: White ] ,
582
611
Language :: Haskell => vec ! [ Color :: BrightBlue , Color :: BrightMagenta , Color :: Blue ] ,
0 commit comments