settings_ui() now returns a status code.
[people/xl0/gpxe.git] / src / hci / commands / config_cmd.c
1 #include <string.h>
2 #include <vsprintf.h>
3 #include <gpxe/command.h>
4 #include <gpxe/settings.h>
5 #include <gpxe/settings_ui.h>
6
7
8 #include <gpxe/nvo.h>
9 extern struct nvo_block *ugly_nvo_hack;
10
11
12 static int config_exec ( int argc, char **argv ) {
13         struct config_context dummy_context;
14         int rc;
15
16         if ( argc != 1 ) {
17                 printf ( "Usage: %s\n"
18                          "Opens the option configuration console\n", argv[0] );
19                 return 1;
20         }
21
22         if ( ! ugly_nvo_hack ) {
23                 printf ( "No non-volatile option storage available\n" );
24                 return 1;
25         }
26
27         dummy_context.options = ugly_nvo_hack->options;
28         if ( ( rc = settings_ui ( &dummy_context ) ) != 0 ) {
29                 printf ( "Could not save settings: %s\n",
30                          strerror ( rc ) );
31                 return 1;
32         }
33
34         return 0;
35 }
36
37 struct command config_command __command = {
38         .name = "config",
39         .exec = config_exec,
40 };