File tree 2 files changed +16
-9
lines changed
2 files changed +16
-9
lines changed Original file line number Diff line number Diff line change @@ -60,11 +60,21 @@ impl DependencyDetector {
60
60
. unwrap_or_default ( )
61
61
} )
62
62
. map ( |entry| {
63
- let ( parser, package_manager ) =
63
+ let ( parser, found_package_manager ) =
64
64
& self . package_managers [ entry. file_name ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) ] ;
65
65
let contents = fs:: read_to_string ( entry) ?;
66
66
let number_of_deps = parser ( & contents) ?;
67
- Ok ( format ! ( "{} ({})" , number_of_deps, package_manager) )
67
+ let used_package_manager;
68
+
69
+ if found_package_manager == & package_manager:: PackageManager :: Npm
70
+ && std:: path:: Path :: new ( & format ! ( "{}yarn.lock" , dir) ) . exists ( )
71
+ {
72
+ used_package_manager = & package_manager:: PackageManager :: Yarn ;
73
+ } else {
74
+ used_package_manager = found_package_manager;
75
+ }
76
+
77
+ Ok ( format ! ( "{} ({})" , number_of_deps, used_package_manager) )
68
78
} )
69
79
. filter_map ( Result :: ok)
70
80
. collect :: < Vec < _ > > ( ) ;
Original file line number Diff line number Diff line change
1
+ #[ derive( PartialEq ) ]
1
2
pub enum PackageManager {
2
3
Cargo ,
3
4
GoModules ,
4
5
Npm ,
5
6
Pip ,
7
+ Yarn ,
6
8
}
7
9
8
10
impl std:: fmt:: Display for PackageManager {
9
11
fn fmt ( & self , f : & mut std:: fmt:: Formatter ) -> std:: fmt:: Result {
10
12
match * self {
11
13
PackageManager :: Cargo => write ! ( f, "Cargo" ) ,
12
14
PackageManager :: GoModules => write ! ( f, "Go Modules" ) ,
13
- PackageManager :: Npm => {
14
- if std:: path:: Path :: new ( "./yarn.lock" ) . exists ( ) {
15
- write ! ( f, "Yarn" )
16
- } else {
17
- write ! ( f, "Npm" )
18
- }
19
- }
15
+ PackageManager :: Npm => write ! ( f, "Npm" ) ,
20
16
PackageManager :: Pip => write ! ( f, "Pip" ) ,
17
+ PackageManager :: Yarn => write ! ( f, "Yarn" ) ,
21
18
}
22
19
}
23
20
}
You can’t perform that action at this time.
0 commit comments