3
3
4
4
use crate :: args:: { SchemaType , OutputFormat , TraceFormat } ;
5
5
use crate :: resolve:: Include ;
6
- use dsc_lib:: configure:: config_result:: ResourceTestResult ;
7
- use dsc_lib:: extensions:: discover:: DiscoverResult ;
8
- use dsc_lib:: extensions:: extension_manifest:: ExtensionManifest ;
9
6
use dsc_lib:: {
10
7
configure:: {
11
8
config_doc:: {
@@ -16,22 +13,33 @@ use dsc_lib::{
16
13
config_result:: {
17
14
ConfigurationGetResult ,
18
15
ConfigurationSetResult ,
19
- ConfigurationTestResult
20
- }
16
+ ConfigurationTestResult ,
17
+ ResourceTestResult ,
18
+ } ,
21
19
} ,
20
+ discovery:: Discovery ,
22
21
dscerror:: DscError ,
23
22
dscresources:: {
24
23
command_resource:: TraceLevel ,
25
- dscresource:: DscResource , invoke_result:: {
24
+ dscresource:: DscResource ,
25
+ invoke_result:: {
26
26
GetResult ,
27
27
SetResult ,
28
28
TestResult ,
29
29
ResolveResult ,
30
- } , resource_manifest:: ResourceManifest
30
+ } ,
31
+ resource_manifest:: ResourceManifest
32
+ } ,
33
+ extensions:: {
34
+ discover:: DiscoverResult ,
35
+ dscextension:: Capability ,
36
+ extension_manifest:: ExtensionManifest ,
31
37
} ,
32
38
functions:: FunctionDefinition ,
33
- util:: parse_input_to_json,
34
- util:: get_setting,
39
+ util:: {
40
+ get_setting,
41
+ parse_input_to_json,
42
+ } ,
35
43
} ;
36
44
use jsonschema:: Validator ;
37
45
use path_absolutize:: Absolutize ;
@@ -487,6 +495,13 @@ pub fn get_input(input: Option<&String>, file: Option<&String>, parameters_from_
487
495
}
488
496
}
489
497
} else {
498
+ // see if an extension should handle this file
499
+ let mut discovery = Discovery :: new ( ) ;
500
+ for extension in discovery. get_extensions ( & Capability :: Import ) {
501
+ if let Ok ( content) = extension. import ( path) {
502
+ return content;
503
+ }
504
+ }
490
505
match std:: fs:: read_to_string ( path) {
491
506
Ok ( input) => {
492
507
// check if it contains UTF-8 BOM and remove it
0 commit comments