[Settings] Start revamping the configuration settings API.
[people/dverkamp/gpxe.git] / src / hci / commands / config_cmd.c
index 368a6ca..49cc41e 100644 (file)
@@ -4,28 +4,27 @@
 #include <gpxe/settings.h>
 #include <gpxe/settings_ui.h>
 
-
-#include <gpxe/nvo.h>
-extern struct nvo_block *ugly_nvo_hack;
-
-
 static int config_exec ( int argc, char **argv ) {
-       struct config_context dummy_context;
+       struct settings *settings;
        int rc;
 
-       if ( argc != 1 ) {
-               printf ( "Usage: %s\n"
+       if ( argc > 2 ) {
+               printf ( "Usage: %s [scope]\n"
                         "Opens the option configuration console\n", argv[0] );
                return 1;
        }
 
-       if ( ! ugly_nvo_hack ) {
-               printf ( "No non-volatile option storage available\n" );
-               return 1;
+       if ( argc == 2 ) {
+               settings = find_settings ( argv[1] );
+               if ( ! settings ) {
+                       printf ( "No such scope \"%s\"\n", argv[1] );
+                       return 1;
+               }
+       } else {
+               settings = &interactive_settings;
        }
 
-       dummy_context.options = ugly_nvo_hack->options;
-       if ( ( rc = settings_ui ( &dummy_context ) ) != 0 ) {
+       if ( ( rc = settings_ui ( settings ) ) != 0 ) {
                printf ( "Could not save settings: %s\n",
                         strerror ( rc ) );
                return 1;