33
44use crate :: args:: { SchemaType , OutputFormat , TraceFormat } ;
55use 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 ;
96use dsc_lib:: {
107 configure:: {
118 config_doc:: {
@@ -16,22 +13,33 @@ use dsc_lib::{
1613 config_result:: {
1714 ConfigurationGetResult ,
1815 ConfigurationSetResult ,
19- ConfigurationTestResult
20- }
16+ ConfigurationTestResult ,
17+ ResourceTestResult ,
18+ } ,
2119 } ,
20+ discovery:: Discovery ,
2221 dscerror:: DscError ,
2322 dscresources:: {
2423 command_resource:: TraceLevel ,
25- dscresource:: DscResource , invoke_result:: {
24+ dscresource:: DscResource ,
25+ invoke_result:: {
2626 GetResult ,
2727 SetResult ,
2828 TestResult ,
2929 ResolveResult ,
30- } , resource_manifest:: ResourceManifest
30+ } ,
31+ resource_manifest:: ResourceManifest
32+ } ,
33+ extensions:: {
34+ discover:: DiscoverResult ,
35+ dscextension:: Capability ,
36+ extension_manifest:: ExtensionManifest ,
3137 } ,
3238 functions:: FunctionDefinition ,
33- util:: parse_input_to_json,
34- util:: get_setting,
39+ util:: {
40+ get_setting,
41+ parse_input_to_json,
42+ } ,
3543} ;
3644use jsonschema:: Validator ;
3745use path_absolutize:: Absolutize ;
@@ -487,6 +495,13 @@ pub fn get_input(input: Option<&String>, file: Option<&String>, parameters_from_
487495 }
488496 }
489497 } 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+ }
490505 match std:: fs:: read_to_string ( path) {
491506 Ok ( input) => {
492507 // check if it contains UTF-8 BOM and remove it
0 commit comments