8
8
9
9
#include <stdbool.h>
10
10
11
+ #include "common/cs_file.h"
12
+
11
13
#include "mgos_config_util.h"
12
14
13
15
@@ -74,6 +76,14 @@ void mgos_config_wifi_sta_set_defaults(struct mgos_config_wifi_sta *cfg) {
74
76
cfg -> ssid = NULL ;
75
77
cfg -> pass = "so\nmany\nlines\n" ;
76
78
}
79
+ bool mgos_config_wifi_sta_parse_f (const char * fname , struct mgos_config_wifi_sta * cfg ) {
80
+ size_t len ;
81
+ char * data = cs_read_file (fname , & len );
82
+ if (data == NULL ) return false;
83
+ bool res = mgos_config_wifi_sta_parse (mg_mk_str_n (data , len ), cfg );
84
+ free (data );
85
+ return res ;
86
+ }
77
87
78
88
/* struct mgos_config_wifi_ap */
79
89
const struct mgos_conf_entry * mgos_config_wifi_ap_get_schema (void ) {
@@ -86,6 +96,14 @@ void mgos_config_wifi_ap_set_defaults(struct mgos_config_wifi_ap *cfg) {
86
96
cfg -> channel = 6 ;
87
97
cfg -> dhcp_end = "192.168.4.200" ;
88
98
}
99
+ bool mgos_config_wifi_ap_parse_f (const char * fname , struct mgos_config_wifi_ap * cfg ) {
100
+ size_t len ;
101
+ char * data = cs_read_file (fname , & len );
102
+ if (data == NULL ) return false;
103
+ bool res = mgos_config_wifi_ap_parse (mg_mk_str_n (data , len ), cfg );
104
+ free (data );
105
+ return res ;
106
+ }
89
107
90
108
/* struct mgos_config_wifi */
91
109
const struct mgos_conf_entry * mgos_config_wifi_get_schema (void ) {
@@ -96,6 +114,14 @@ void mgos_config_wifi_set_defaults(struct mgos_config_wifi *cfg) {
96
114
mgos_config_wifi_sta_set_defaults (& cfg -> sta );
97
115
mgos_config_wifi_ap_set_defaults (& cfg -> ap );
98
116
}
117
+ bool mgos_config_wifi_parse_f (const char * fname , struct mgos_config_wifi * cfg ) {
118
+ size_t len ;
119
+ char * data = cs_read_file (fname , & len );
120
+ if (data == NULL ) return false;
121
+ bool res = mgos_config_wifi_parse (mg_mk_str_n (data , len ), cfg );
122
+ free (data );
123
+ return res ;
124
+ }
99
125
100
126
/* struct mgos_config_http */
101
127
const struct mgos_conf_entry * mgos_config_http_get_schema (void ) {
@@ -106,6 +132,14 @@ void mgos_config_http_set_defaults(struct mgos_config_http *cfg) {
106
132
cfg -> enable = true;
107
133
cfg -> port = 80 ;
108
134
}
135
+ bool mgos_config_http_parse_f (const char * fname , struct mgos_config_http * cfg ) {
136
+ size_t len ;
137
+ char * data = cs_read_file (fname , & len );
138
+ if (data == NULL ) return false;
139
+ bool res = mgos_config_http_parse (mg_mk_str_n (data , len ), cfg );
140
+ free (data );
141
+ return res ;
142
+ }
109
143
110
144
/* struct mgos_config_debug_empty */
111
145
const struct mgos_conf_entry * mgos_config_debug_empty_get_schema (void ) {
@@ -115,6 +149,14 @@ const struct mgos_conf_entry *mgos_config_debug_empty_get_schema(void) {
115
149
void mgos_config_debug_empty_set_defaults (struct mgos_config_debug_empty * cfg ) {
116
150
(void ) cfg ;
117
151
}
152
+ bool mgos_config_debug_empty_parse_f (const char * fname , struct mgos_config_debug_empty * cfg ) {
153
+ size_t len ;
154
+ char * data = cs_read_file (fname , & len );
155
+ if (data == NULL ) return false;
156
+ bool res = mgos_config_debug_empty_parse (mg_mk_str_n (data , len ), cfg );
157
+ free (data );
158
+ return res ;
159
+ }
118
160
119
161
/* struct mgos_config_debug */
120
162
const struct mgos_conf_entry * mgos_config_debug_get_schema (void ) {
@@ -132,6 +174,14 @@ void mgos_config_debug_set_defaults(struct mgos_config_debug *cfg) {
132
174
cfg -> test_ui = 4294967295 ;
133
175
mgos_config_debug_empty_set_defaults (& cfg -> empty );
134
176
}
177
+ bool mgos_config_debug_parse_f (const char * fname , struct mgos_config_debug * cfg ) {
178
+ size_t len ;
179
+ char * data = cs_read_file (fname , & len );
180
+ if (data == NULL ) return false;
181
+ bool res = mgos_config_debug_parse (mg_mk_str_n (data , len ), cfg );
182
+ free (data );
183
+ return res ;
184
+ }
135
185
136
186
/* struct mgos_config_baz */
137
187
const struct mgos_conf_entry * mgos_config_baz_get_schema (void ) {
@@ -141,6 +191,14 @@ const struct mgos_conf_entry *mgos_config_baz_get_schema(void) {
141
191
void mgos_config_baz_set_defaults (struct mgos_config_baz * cfg ) {
142
192
cfg -> bazaar = false;
143
193
}
194
+ bool mgos_config_baz_parse_f (const char * fname , struct mgos_config_baz * cfg ) {
195
+ size_t len ;
196
+ char * data = cs_read_file (fname , & len );
197
+ if (data == NULL ) return false;
198
+ bool res = mgos_config_baz_parse (mg_mk_str_n (data , len ), cfg );
199
+ free (data );
200
+ return res ;
201
+ }
144
202
145
203
/* struct mgos_config_bar_inner */
146
204
const struct mgos_conf_entry * mgos_config_bar_inner_get_schema (void ) {
@@ -151,6 +209,14 @@ void mgos_config_bar_inner_set_defaults(struct mgos_config_bar_inner *cfg) {
151
209
cfg -> param2 = "p2" ;
152
210
cfg -> param3 = 3333 ;
153
211
}
212
+ bool mgos_config_bar_inner_parse_f (const char * fname , struct mgos_config_bar_inner * cfg ) {
213
+ size_t len ;
214
+ char * data = cs_read_file (fname , & len );
215
+ if (data == NULL ) return false;
216
+ bool res = mgos_config_bar_inner_parse (mg_mk_str_n (data , len ), cfg );
217
+ free (data );
218
+ return res ;
219
+ }
154
220
155
221
/* struct mgos_config_baz */
156
222
const struct mgos_conf_entry * mgos_config_bar_baz_get_schema (void ) {
@@ -160,6 +226,14 @@ const struct mgos_conf_entry *mgos_config_bar_baz_get_schema(void) {
160
226
void mgos_config_bar_baz_set_defaults (struct mgos_config_baz * cfg ) {
161
227
cfg -> bazaar = false;
162
228
}
229
+ bool mgos_config_bar_baz_parse_f (const char * fname , struct mgos_config_baz * cfg ) {
230
+ size_t len ;
231
+ char * data = cs_read_file (fname , & len );
232
+ if (data == NULL ) return false;
233
+ bool res = mgos_config_bar_baz_parse (mg_mk_str_n (data , len ), cfg );
234
+ free (data );
235
+ return res ;
236
+ }
163
237
164
238
/* struct mgos_config_bar */
165
239
const struct mgos_conf_entry * mgos_config_bar_get_schema (void ) {
@@ -172,6 +246,14 @@ void mgos_config_bar_set_defaults(struct mgos_config_bar *cfg) {
172
246
mgos_config_bar_inner_set_defaults (& cfg -> inner );
173
247
mgos_config_bar_baz_set_defaults (& cfg -> baz );
174
248
}
249
+ bool mgos_config_bar_parse_f (const char * fname , struct mgos_config_bar * cfg ) {
250
+ size_t len ;
251
+ char * data = cs_read_file (fname , & len );
252
+ if (data == NULL ) return false;
253
+ bool res = mgos_config_bar_parse (mg_mk_str_n (data , len ), cfg );
254
+ free (data );
255
+ return res ;
256
+ }
175
257
176
258
/* struct mgos_config_bar_inner */
177
259
const struct mgos_conf_entry * mgos_config_test_bar1_inner_get_schema (void ) {
@@ -182,6 +264,14 @@ void mgos_config_test_bar1_inner_set_defaults(struct mgos_config_bar_inner *cfg)
182
264
cfg -> param2 = "p2" ;
183
265
cfg -> param3 = 3333 ;
184
266
}
267
+ bool mgos_config_test_bar1_inner_parse_f (const char * fname , struct mgos_config_bar_inner * cfg ) {
268
+ size_t len ;
269
+ char * data = cs_read_file (fname , & len );
270
+ if (data == NULL ) return false;
271
+ bool res = mgos_config_test_bar1_inner_parse (mg_mk_str_n (data , len ), cfg );
272
+ free (data );
273
+ return res ;
274
+ }
185
275
186
276
/* struct mgos_config_baz */
187
277
const struct mgos_conf_entry * mgos_config_test_bar1_baz_get_schema (void ) {
@@ -191,6 +281,14 @@ const struct mgos_conf_entry *mgos_config_test_bar1_baz_get_schema(void) {
191
281
void mgos_config_test_bar1_baz_set_defaults (struct mgos_config_baz * cfg ) {
192
282
cfg -> bazaar = false;
193
283
}
284
+ bool mgos_config_test_bar1_baz_parse_f (const char * fname , struct mgos_config_baz * cfg ) {
285
+ size_t len ;
286
+ char * data = cs_read_file (fname , & len );
287
+ if (data == NULL ) return false;
288
+ bool res = mgos_config_test_bar1_baz_parse (mg_mk_str_n (data , len ), cfg );
289
+ free (data );
290
+ return res ;
291
+ }
194
292
195
293
/* struct mgos_config_bar */
196
294
const struct mgos_conf_entry * mgos_config_test_bar1_get_schema (void ) {
@@ -203,6 +301,14 @@ void mgos_config_test_bar1_set_defaults(struct mgos_config_bar *cfg) {
203
301
mgos_config_test_bar1_inner_set_defaults (& cfg -> inner );
204
302
mgos_config_test_bar1_baz_set_defaults (& cfg -> baz );
205
303
}
304
+ bool mgos_config_test_bar1_parse_f (const char * fname , struct mgos_config_bar * cfg ) {
305
+ size_t len ;
306
+ char * data = cs_read_file (fname , & len );
307
+ if (data == NULL ) return false;
308
+ bool res = mgos_config_test_bar1_parse (mg_mk_str_n (data , len ), cfg );
309
+ free (data );
310
+ return res ;
311
+ }
206
312
207
313
/* struct mgos_config_bar_inner */
208
314
const struct mgos_conf_entry * mgos_config_test_bar2_inner_get_schema (void ) {
@@ -213,6 +319,14 @@ void mgos_config_test_bar2_inner_set_defaults(struct mgos_config_bar_inner *cfg)
213
319
cfg -> param2 = "p2" ;
214
320
cfg -> param3 = 3333 ;
215
321
}
322
+ bool mgos_config_test_bar2_inner_parse_f (const char * fname , struct mgos_config_bar_inner * cfg ) {
323
+ size_t len ;
324
+ char * data = cs_read_file (fname , & len );
325
+ if (data == NULL ) return false;
326
+ bool res = mgos_config_test_bar2_inner_parse (mg_mk_str_n (data , len ), cfg );
327
+ free (data );
328
+ return res ;
329
+ }
216
330
217
331
/* struct mgos_config_baz */
218
332
const struct mgos_conf_entry * mgos_config_test_bar2_baz_get_schema (void ) {
@@ -222,6 +336,14 @@ const struct mgos_conf_entry *mgos_config_test_bar2_baz_get_schema(void) {
222
336
void mgos_config_test_bar2_baz_set_defaults (struct mgos_config_baz * cfg ) {
223
337
cfg -> bazaar = true;
224
338
}
339
+ bool mgos_config_test_bar2_baz_parse_f (const char * fname , struct mgos_config_baz * cfg ) {
340
+ size_t len ;
341
+ char * data = cs_read_file (fname , & len );
342
+ if (data == NULL ) return false;
343
+ bool res = mgos_config_test_bar2_baz_parse (mg_mk_str_n (data , len ), cfg );
344
+ free (data );
345
+ return res ;
346
+ }
225
347
226
348
/* struct mgos_config_bar */
227
349
const struct mgos_conf_entry * mgos_config_test_bar2_get_schema (void ) {
@@ -234,6 +356,14 @@ void mgos_config_test_bar2_set_defaults(struct mgos_config_bar *cfg) {
234
356
mgos_config_test_bar2_inner_set_defaults (& cfg -> inner );
235
357
mgos_config_test_bar2_baz_set_defaults (& cfg -> baz );
236
358
}
359
+ bool mgos_config_test_bar2_parse_f (const char * fname , struct mgos_config_bar * cfg ) {
360
+ size_t len ;
361
+ char * data = cs_read_file (fname , & len );
362
+ if (data == NULL ) return false;
363
+ bool res = mgos_config_test_bar2_parse (mg_mk_str_n (data , len ), cfg );
364
+ free (data );
365
+ return res ;
366
+ }
237
367
238
368
/* struct mgos_config_test */
239
369
const struct mgos_conf_entry * mgos_config_test_get_schema (void ) {
@@ -244,6 +374,14 @@ void mgos_config_test_set_defaults(struct mgos_config_test *cfg) {
244
374
mgos_config_test_bar1_set_defaults (& cfg -> bar1 );
245
375
mgos_config_test_bar2_set_defaults (& cfg -> bar2 );
246
376
}
377
+ bool mgos_config_test_parse_f (const char * fname , struct mgos_config_test * cfg ) {
378
+ size_t len ;
379
+ char * data = cs_read_file (fname , & len );
380
+ if (data == NULL ) return false;
381
+ bool res = mgos_config_test_parse (mg_mk_str_n (data , len ), cfg );
382
+ free (data );
383
+ return res ;
384
+ }
247
385
248
386
/* struct mgos_config_boo_sub */
249
387
const struct mgos_conf_entry * mgos_config_boo_sub_get_schema (void ) {
@@ -253,6 +391,14 @@ const struct mgos_conf_entry *mgos_config_boo_sub_get_schema(void) {
253
391
void mgos_config_boo_sub_set_defaults (struct mgos_config_boo_sub * cfg ) {
254
392
cfg -> param7 = 444 ;
255
393
}
394
+ bool mgos_config_boo_sub_parse_f (const char * fname , struct mgos_config_boo_sub * cfg ) {
395
+ size_t len ;
396
+ char * data = cs_read_file (fname , & len );
397
+ if (data == NULL ) return false;
398
+ bool res = mgos_config_boo_sub_parse (mg_mk_str_n (data , len ), cfg );
399
+ free (data );
400
+ return res ;
401
+ }
256
402
257
403
/* struct mgos_config_boo */
258
404
const struct mgos_conf_entry * mgos_config_boo_get_schema (void ) {
@@ -264,6 +410,14 @@ void mgos_config_boo_set_defaults(struct mgos_config_boo *cfg) {
264
410
cfg -> param6 = "p6" ;
265
411
mgos_config_boo_sub_set_defaults (& cfg -> sub );
266
412
}
413
+ bool mgos_config_boo_parse_f (const char * fname , struct mgos_config_boo * cfg ) {
414
+ size_t len ;
415
+ char * data = cs_read_file (fname , & len );
416
+ if (data == NULL ) return false;
417
+ bool res = mgos_config_boo_parse (mg_mk_str_n (data , len ), cfg );
418
+ free (data );
419
+ return res ;
420
+ }
267
421
268
422
/* struct mgos_config */
269
423
const struct mgos_conf_entry * mgos_config_get_schema (void ) {
@@ -277,6 +431,14 @@ void mgos_config_set_defaults(struct mgos_config *cfg) {
277
431
mgos_config_debug_set_defaults (& cfg -> debug );
278
432
mgos_config_test_set_defaults (& cfg -> test );
279
433
}
434
+ bool mgos_config_parse_f (const char * fname , struct mgos_config * cfg ) {
435
+ size_t len ;
436
+ char * data = cs_read_file (fname , & len );
437
+ if (data == NULL ) return false;
438
+ bool res = mgos_config_parse (mg_mk_str_n (data , len ), cfg );
439
+ free (data );
440
+ return res ;
441
+ }
280
442
281
443
/* Global instance */
282
444
struct mgos_config mgos_sys_config ;
0 commit comments