@@ -71,18 +71,21 @@ pub fn parse_input_to_json(value: &str) -> Result<String, DscError> {
71
71
pub fn get_setting ( value_name : & str ) -> Result < DscSettingValue , DscError > {
72
72
73
73
const SETTINGS_FILE_NAME : & str = "dsc.settings.json" ;
74
- // Note that default settings file name has a version that is specific to this version of dsc
74
+ // Note that default settings file has root nodes as settings schema version that is specific to this version of dsc
75
75
const DEFAULT_SETTINGS_FILE_NAME : & str = "dsc_default.settings.json" ;
76
+ const DEFAULT_SETTINGS_SCHEMA_VERSION : & str = "1" ;
76
77
77
78
let mut result: DscSettingValue = DscSettingValue :: default ( ) ;
78
79
let mut settings_file_path : PathBuf ;
79
80
80
81
if let Some ( exe_home) = env:: current_exe ( ) ?. parent ( ) {
81
82
// First, get setting from the default settings file
82
83
settings_file_path = exe_home. join ( DEFAULT_SETTINGS_FILE_NAME ) ;
83
- if let Ok ( v) = load_value_from_json ( & settings_file_path, value_name) {
84
- result. setting = v;
85
- debug ! ( "Found setting '{}' in {}" , & value_name, settings_file_path. to_string_lossy( ) ) ;
84
+ if let Ok ( v) = load_value_from_json ( & settings_file_path, DEFAULT_SETTINGS_SCHEMA_VERSION ) {
85
+ if let Some ( n) = v. get ( value_name) {
86
+ result. setting = n. clone ( ) ;
87
+ debug ! ( "Found setting '{}' in {}" , & value_name, settings_file_path. to_string_lossy( ) ) ;
88
+ }
86
89
} else {
87
90
debug ! ( "Did not find setting '{}' in {}" , & value_name, settings_file_path. to_string_lossy( ) ) ;
88
91
}
0 commit comments