@@ -16,7 +16,7 @@ use dsc_lib::{
16
16
} ;
17
17
use std:: process:: exit;
18
18
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 > ) {
20
20
let Some ( resource) = get_resource ( dsc, resource_type) else {
21
21
error ! ( "{}" , DscError :: ResourceNotFound ( resource_type. to_string( ) ) . to_string( ) ) ;
22
22
exit ( EXIT_DSC_RESOURCE_NOT_FOUND ) ;
@@ -30,18 +30,37 @@ pub fn get(dsc: &DscManager, resource_type: &str, input: &str, format: Option<&O
30
30
31
31
match resource. get ( input) {
32
32
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
+
33
47
// convert to json
34
48
let json = match serde_json:: to_string ( & result) {
35
49
Ok ( json) => json,
36
50
Err ( err) => {
37
- error ! ( "JSON Error: {err}" ) ;
51
+ error ! ( "{}" , t! ( "resource_command.jsonError" , err = err ) ) ;
38
52
exit ( EXIT_JSON_ERROR ) ;
39
53
}
40
54
} ;
55
+ let format = match format {
56
+ Some ( & GetOutputFormat :: PrettyJson ) => Some ( & OutputFormat :: PrettyJson ) ,
57
+ Some ( & GetOutputFormat :: Yaml ) => Some ( & OutputFormat :: Yaml ) ,
58
+ _ => Some ( & OutputFormat :: Json ) ,
59
+ } ;
41
60
write_object ( & json, format, false ) ;
42
61
}
43
62
Err ( err) => {
44
- error ! ( "Error: {err}" ) ;
63
+ error ! ( "{err}" ) ;
45
64
exit ( EXIT_DSC_ERROR ) ;
46
65
}
47
66
}
@@ -63,7 +82,7 @@ pub fn get_all(dsc: &DscManager, resource_type: &str, format: Option<&GetOutputF
63
82
let export_result = match resource. export ( & input) {
64
83
Ok ( export) => { export }
65
84
Err ( err) => {
66
- error ! ( "Error: {err}" ) ;
85
+ error ! ( "{err}" ) ;
67
86
exit ( EXIT_DSC_ERROR ) ;
68
87
}
69
88
} ;
@@ -127,14 +146,14 @@ pub fn set(dsc: &DscManager, resource_type: &str, input: &str, format: Option<&O
127
146
let json = match serde_json:: to_string ( & result) {
128
147
Ok ( json) => json,
129
148
Err ( err) => {
130
- error ! ( "JSON Error: {err}" ) ;
149
+ error ! ( "{}" , t! ( "resource_command.jsonError" , err = err ) ) ;
131
150
exit ( EXIT_JSON_ERROR ) ;
132
151
}
133
152
} ;
134
153
write_object ( & json, format, false ) ;
135
154
}
136
155
Err ( err) => {
137
- error ! ( "Error: {err}" ) ;
156
+ error ! ( "{err}" ) ;
138
157
exit ( EXIT_DSC_ERROR ) ;
139
158
}
140
159
}
@@ -191,7 +210,7 @@ pub fn delete(dsc: &DscManager, resource_type: &str, input: &str) {
191
210
match resource. delete ( input) {
192
211
Ok ( ( ) ) => { }
193
212
Err ( err) => {
194
- error ! ( "Error: {err}" ) ;
213
+ error ! ( "{err}" ) ;
195
214
exit ( EXIT_DSC_ERROR ) ;
196
215
}
197
216
}
@@ -213,14 +232,14 @@ pub fn schema(dsc: &DscManager, resource_type: &str, format: Option<&OutputForma
213
232
match serde_json:: from_str :: < serde_json:: Value > ( json. as_str ( ) ) {
214
233
Ok ( _) => ( ) ,
215
234
Err ( err) => {
216
- error ! ( "Error: {err}" ) ;
235
+ error ! ( "{err}" ) ;
217
236
exit ( EXIT_JSON_ERROR ) ;
218
237
}
219
238
}
220
239
write_object ( & json, format, false ) ;
221
240
}
222
241
Err ( err) => {
223
- error ! ( "Error: {err}" ) ;
242
+ error ! ( "{err}" ) ;
224
243
exit ( EXIT_DSC_ERROR ) ;
225
244
}
226
245
}
0 commit comments