#include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <getopt.h> #include <gpxe/settings.h> #include <gpxe/command.h> FILE_LICENCE ( GPL2_OR_LATER ); static int show_exec ( int argc, char **argv ) { char buf[256]; int rc; if ( argc != 2 ) { printf ( "Syntax: %s <identifier>\n", argv[0] ); return 1; } if ( ( rc = fetchf_named_setting ( argv[1], buf, sizeof ( buf ) ) ) < 0 ){ printf ( "Could not find \"%s\": %s\n", argv[1], strerror ( rc ) ); return 1; } printf ( "%s = %s\n", argv[1], buf ); return 0; } static int set_exec ( int argc, char **argv ) { int rc; if ( argc != 3 ) { printf ( "Syntax: %s <identifier> <value>\n", argv[0] ); return 1; } if ( ( rc = storef_named_setting ( argv[1], argv[2] ) ) != 0 ) { printf ( "Could not set \"%s\"=\"%s\": %s\n", argv[1], argv[2], strerror ( rc ) ); return 1; } return 0; } static int clear_exec ( int argc, char **argv ) { int rc; if ( argc != 2 ) { printf ( "Syntax: %s <identifier>\n", argv[0] ); return 1; } if ( ( rc = delete_named_setting ( argv[1] ) ) != 0 ) { printf ( "Could not clear \"%s\": %s\n", argv[1], strerror ( rc ) ); return 1; } return 0; } struct command nvo_commands[] __command = { { .name = "show", .exec = show_exec, }, { .name = "set", .exec = set_exec, }, { .name = "clear", .exec = clear_exec, }, };