@@ -34,32 +34,43 @@ private static async Task Main(string[] args)
3434 var moduleFileName = await new CLIBitMonoModuleFileResolver ( args ) . ResolveAsync ( ) ;
3535 if ( string . IsNullOrWhiteSpace ( moduleFileName ) )
3636 {
37- Console . WriteLine ( "File not specified, please specify path to the file here: " ) ;
38- moduleFileName = Console . ReadLine ( ) ;
39-
40- if ( string . IsNullOrWhiteSpace ( moduleFileName ) )
37+ while ( string . IsNullOrWhiteSpace ( moduleFileName ) )
4138 {
39+ Console . Clear ( ) ;
4240 Console . WriteLine ( "Please, specify file or drag-and-drop in BitMono CLI" ) ;
43- Console . ReadLine ( ) ;
44- return ;
41+ Console . WriteLine ( "File not specified, please specify path to the file here: " ) ;
42+ moduleFileName = Console . ReadLine ( ) ;
4543 }
4644 }
45+ var moduleFileBaseDirectory = Path . GetDirectoryName ( moduleFileName ) ;
46+ var dependenciesDirectoryName = Path . Combine ( moduleFileBaseDirectory , "libs" ) ;
47+ if ( Directory . Exists ( dependenciesDirectoryName ) == false )
48+ {
49+ while ( string . IsNullOrWhiteSpace ( dependenciesDirectoryName ) )
50+ {
51+ Console . Clear ( ) ;
52+ Console . WriteLine ( "Please, specify dependencies (libs) path: " ) ;
53+ dependenciesDirectoryName = Console . ReadLine ( ) ;
54+ }
55+ }
56+ else
57+ {
58+ Console . WriteLine ( "Dependencies (libs) directory was automatically found {0}!" , dependenciesDirectoryName ) ;
59+ }
4760
4861 var domainBaseDirectory = AppDomain . CurrentDomain . BaseDirectory ;
4962 var protectionsFile = Path . Combine ( domainBaseDirectory , Protections ) ;
5063 var runtimeModuleDefMD = ModuleDefMD . Load ( typeof ( BitMono . Runtime . Hooking ) . Module ) ;
5164 Assembly . LoadFrom ( protectionsFile ) ;
5265
53- var moduleFileBaseDirectory = Path . GetDirectoryName ( moduleFileName ) ;
54- var dependenciesDirectoryName = Path . Combine ( moduleFileBaseDirectory , "libs" ) ;
5566 var outputDirectoryName = Path . Combine ( moduleFileBaseDirectory , "output" ) ;
5667 Directory . CreateDirectory ( dependenciesDirectoryName ) ;
5768 Directory . CreateDirectory ( outputDirectoryName ) ;
5869
5970 var serviceProvider = new BitMonoApplication ( ) . RegisterModule ( new BitMonoModule ( configureLogger =>
6071 {
6172 configureLogger . WriteTo . Async ( configure => configure . Console (
62- outputTemplate : "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}][{SourceContext}] {Message:lj}{NewLine}{Exception}" ) ) ;
73+ outputTemplate : "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}][{SourceContext}] {Message:lj}{NewLine}{Exception}" ) ) ;
6374 } ) ) . Build ( ) ;
6475
6576 var obfuscationConfiguration = serviceProvider . LifetimeScope . Resolve < IBitMonoObfuscationConfiguration > ( ) ;
0 commit comments