@@ -16,7 +16,7 @@ use dsc_lib::{
1616} ;
1717use std:: process:: exit;
1818
19- pub fn get ( dsc : & DscManager , resource_type : & str , input : & str , format : Option < & OutputFormat > ) {
19+ pub fn get ( dsc : & DscManager , resource_type : & str , input : & str , format : Option < & GetOutputFormat > ) {
2020 let Some ( resource) = get_resource ( dsc, resource_type) else {
2121 error ! ( "{}" , DscError :: ResourceNotFound ( resource_type. to_string( ) ) . to_string( ) ) ;
2222 exit ( EXIT_DSC_RESOURCE_NOT_FOUND ) ;
@@ -30,18 +30,37 @@ pub fn get(dsc: &DscManager, resource_type: &str, input: &str, format: Option<&O
3030
3131 match resource. get ( input) {
3232 Ok ( result) => {
33+ if let GetResult :: Resource ( response) = & result {
34+ if format == Some ( & GetOutputFormat :: PassThrough ) {
35+ let json = match serde_json:: to_string ( & response. actual_state ) {
36+ Ok ( json) => json,
37+ Err ( err) => {
38+ error ! ( "{}" , t!( "resource_command.jsonError" , err = err) ) ;
39+ exit ( EXIT_JSON_ERROR ) ;
40+ }
41+ } ;
42+ write_object ( & json, Some ( & OutputFormat :: Json ) , false ) ;
43+ return ;
44+ }
45+ }
46+
3347 // convert to json
3448 let json = match serde_json:: to_string ( & result) {
3549 Ok ( json) => json,
3650 Err ( err) => {
37- error ! ( "JSON Error: {err}" ) ;
51+ error ! ( "{}" , t! ( "resource_command.jsonError" , err = err ) ) ;
3852 exit ( EXIT_JSON_ERROR ) ;
3953 }
4054 } ;
55+ let format = match format {
56+ Some ( & GetOutputFormat :: PrettyJson ) => Some ( & OutputFormat :: PrettyJson ) ,
57+ Some ( & GetOutputFormat :: Yaml ) => Some ( & OutputFormat :: Yaml ) ,
58+ _ => Some ( & OutputFormat :: Json ) ,
59+ } ;
4160 write_object ( & json, format, false ) ;
4261 }
4362 Err ( err) => {
44- error ! ( "Error: {err}" ) ;
63+ error ! ( "{err}" ) ;
4564 exit ( EXIT_DSC_ERROR ) ;
4665 }
4766 }
@@ -63,7 +82,7 @@ pub fn get_all(dsc: &DscManager, resource_type: &str, format: Option<&GetOutputF
6382 let export_result = match resource. export ( & input) {
6483 Ok ( export) => { export }
6584 Err ( err) => {
66- error ! ( "Error: {err}" ) ;
85+ error ! ( "{err}" ) ;
6786 exit ( EXIT_DSC_ERROR ) ;
6887 }
6988 } ;
@@ -127,14 +146,14 @@ pub fn set(dsc: &DscManager, resource_type: &str, input: &str, format: Option<&O
127146 let json = match serde_json:: to_string ( & result) {
128147 Ok ( json) => json,
129148 Err ( err) => {
130- error ! ( "JSON Error: {err}" ) ;
149+ error ! ( "{}" , t! ( "resource_command.jsonError" , err = err ) ) ;
131150 exit ( EXIT_JSON_ERROR ) ;
132151 }
133152 } ;
134153 write_object ( & json, format, false ) ;
135154 }
136155 Err ( err) => {
137- error ! ( "Error: {err}" ) ;
156+ error ! ( "{err}" ) ;
138157 exit ( EXIT_DSC_ERROR ) ;
139158 }
140159 }
@@ -191,7 +210,7 @@ pub fn delete(dsc: &DscManager, resource_type: &str, input: &str) {
191210 match resource. delete ( input) {
192211 Ok ( ( ) ) => { }
193212 Err ( err) => {
194- error ! ( "Error: {err}" ) ;
213+ error ! ( "{err}" ) ;
195214 exit ( EXIT_DSC_ERROR ) ;
196215 }
197216 }
@@ -213,14 +232,14 @@ pub fn schema(dsc: &DscManager, resource_type: &str, format: Option<&OutputForma
213232 match serde_json:: from_str :: < serde_json:: Value > ( json. as_str ( ) ) {
214233 Ok ( _) => ( ) ,
215234 Err ( err) => {
216- error ! ( "Error: {err}" ) ;
235+ error ! ( "{err}" ) ;
217236 exit ( EXIT_JSON_ERROR ) ;
218237 }
219238 }
220239 write_object ( & json, format, false ) ;
221240 }
222241 Err ( err) => {
223- error ! ( "Error: {err}" ) ;
242+ error ! ( "{err}" ) ;
224243 exit ( EXIT_DSC_ERROR ) ;
225244 }
226245 }
0 commit comments