@@ -12,14 +12,14 @@ public static async Task<Options> CreateDefault(
1212 var fileInfo = GetOptionsFile ( projectPath , settingsOptionsPath ) ;
1313 if ( ! fileInfo . Exists )
1414 {
15- return CreateDefaultOptions ( ) ;
15+ return CreateDefaultOptions ( projectPath ) ;
1616 }
1717
1818 var optionsPath = GetOptionsPath ( projectPath , settingsOptionsPath ) ;
1919 var options = await DeserializeFile ( fileInfo ) ;
2020 if ( options is null )
2121 {
22- return CreateDefaultOptions ( ) ;
22+ return CreateDefaultOptions ( projectPath ) ;
2323 }
2424
2525 options . Mappings . ResolvePaths ( new DirectoryInfo ( optionsPath ) ) ;
@@ -28,15 +28,23 @@ public static async Task<Options> CreateDefault(
2828
2929 public static async Task < ( bool , string ) > CreateOptionsFile (
3030 DirectoryInfo projectPath ,
31- string ? settingsOptionsPath )
31+ ProjectCommandSettings settings )
3232 {
33- var fileInfo = GetOptionsFile ( projectPath , settingsOptionsPath ) ;
33+ ArgumentNullException . ThrowIfNull ( projectPath ) ;
34+ ArgumentNullException . ThrowIfNull ( settings ) ;
35+
36+ var fileInfo = GetOptionsFile ( projectPath , settings . GetOptionsPath ( ) ) ;
3437 if ( fileInfo . Exists )
3538 {
3639 return ( false , "File already exist" ) ;
3740 }
3841
39- var options = CreateDefaultOptions ( ) ;
42+ var options = CreateDefaultOptions ( projectPath ) ;
43+ if ( settings . ProjectTarget . IsSet )
44+ {
45+ options . ProjectTarget = settings . ProjectTarget . Value ;
46+ }
47+
4048 var serializeOptions = JsonSerializerOptionsFactory . Create ( ) ;
4149 var json = JsonSerializer . Serialize ( options , serializeOptions ) ;
4250 await File . WriteAllTextAsync ( fileInfo . FullName , json , Encoding . UTF8 ) ;
@@ -59,12 +67,24 @@ public static async Task<Options> CreateDefault(
5967 : ( true , string . Empty ) ;
6068 }
6169
62- private static Options CreateDefaultOptions ( )
70+ private static Options CreateDefaultOptions (
71+ DirectoryInfo projectPath )
6372 {
6473 var options = new Options ( ) ;
65- options . Mappings . Sample . Paths . Add ( "sample" ) ;
66- options . Mappings . Src . Paths . Add ( "src" ) ;
67- options . Mappings . Test . Paths . Add ( "test" ) ;
74+ var directories = projectPath . GetDirectories ( ) ;
75+
76+ var sampleName = directories . FirstOrDefault ( x => x . Name . Equals ( "sample" , StringComparison . OrdinalIgnoreCase ) ) ? . Name ;
77+ if ( sampleName is not null )
78+ {
79+ options . Mappings . Sample . Paths . Add ( sampleName ) ;
80+ }
81+
82+ var srcName = directories . FirstOrDefault ( x => x . Name . Equals ( "src" , StringComparison . OrdinalIgnoreCase ) ) ? . Name ?? "src" ;
83+ options . Mappings . Src . Paths . Add ( srcName ) ;
84+
85+ var testName = directories . FirstOrDefault ( x => x . Name . Equals ( "test" , StringComparison . OrdinalIgnoreCase ) ) ? . Name ?? "test" ;
86+ options . Mappings . Test . Paths . Add ( testName ) ;
87+
6888 return options ;
6989 }
7090
0 commit comments