1- use anyhow:: { anyhow, Context , Result } ;
2- use gengo:: { analysis, FileSource , Git , Builder } ;
3- use gix:: filter:: plumbing:: eol:: Stats ;
1+ use anyhow:: { anyhow, Result } ;
2+ use gengo:: { Builder , Git } ;
3+
4+ use globset:: { Glob , GlobSetBuilder } ;
45use language:: { Language , LanguageType } ;
56use std:: collections:: HashMap ;
67use std:: error:: Error ;
78use std:: path:: Path ;
8- use strum:: IntoEnumIterator ;
9- use globset:: { Glob , GlobSetBuilder } ;
109
1110pub mod language;
1211
@@ -23,20 +22,22 @@ pub fn get_size_by_language_sorted(
2322 language_types : & [ LanguageType ] ,
2423 include_hidden : bool ,
2524) -> Result < Vec < ( Language , usize ) > > {
26- let globset = globs_to_exclude. iter ( )
25+ let globset = globs_to_exclude
26+ . iter ( )
2727 . filter_map ( |glob| Glob :: new ( glob) . ok ( ) )
2828 . fold ( GlobSetBuilder :: new ( ) , |mut builder, glob| {
2929 builder. add ( glob) ;
3030 builder
3131 } )
3232 . build ( ) ?;
33- let analysis = match get_statistics ( dir, globs_to_exclude , language_types , include_hidden ) {
33+ let analysis = match get_statistics ( dir) {
3434 Ok ( stats) => stats,
35- Err ( e) => return Err ( anyhow ! ( "Could not analyze repository: {}" , e) )
35+ Err ( e) => return Err ( anyhow ! ( "Could not analyze repository: {}" , e) ) ,
3636 } ;
3737
3838 // NOTE If finer control is ever needed, summary_with can be used.
39- let mut size_by_language: Vec < ( Language , _ ) > = analysis. iter ( )
39+ let mut size_by_language: Vec < ( Language , _ ) > = analysis
40+ . iter ( )
4041 . filter ( |( path, _) | include_hidden || !is_hidden ( path) )
4142 . filter ( |( path, _) | !globset. is_match ( path) )
4243 . filter ( |( _, entry) | {
@@ -60,12 +61,7 @@ pub fn get_size_by_language_sorted(
6061 Ok ( size_by_language)
6162}
6263
63- fn get_statistics (
64- dir : & Path ,
65- globs_to_exclude : & [ String ] ,
66- language_types : & [ LanguageType ] ,
67- include_hidden : bool ,
68- ) -> Result < gengo:: Analysis , Box < dyn Error > > {
64+ fn get_statistics ( dir : & Path ) -> Result < gengo:: Analysis , Box < dyn Error > > {
6965 // TODO Determine best way to ignore files (and if that should continue to be handled by onefetch)
7066 let file_source = Git :: new ( dir, "HEAD" ) ?;
7167 let gengo = Builder :: new ( file_source) . build ( ) ?;
@@ -74,9 +70,9 @@ fn get_statistics(
7470
7571/// Returns `true` if the file is or any of its containing directories are hidden.
7672fn is_hidden ( path : impl AsRef < Path > ) -> bool {
77- path. as_ref ( ) . components ( ) . any ( |c| {
78- c . as_os_str ( ) . to_string_lossy ( ) . starts_with ( '.' )
79- } )
73+ path. as_ref ( )
74+ . components ( )
75+ . any ( |c| c . as_os_str ( ) . to_string_lossy ( ) . starts_with ( '.' ) )
8076}
8177
8278#[ cfg( test) ]
0 commit comments