1 #include <stdint.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <string.h>
5 #include <errno.h>
6 #include <getopt.h>
7 #include <gpxe/settings.h>
8 #include <gpxe/command.h>
9 
10 FILE_LICENCE ( GPL2_OR_LATER );
11 
show_exec(int argc,char ** argv)12 static int show_exec ( int argc, char **argv ) {
13 	char buf[256];
14 	int rc;
15 
16 	if ( argc != 2 ) {
17 		printf ( "Syntax: %s <identifier>\n", argv[0] );
18 		return 1;
19 	}
20 
21 	if ( ( rc = fetchf_named_setting ( argv[1], buf,
22 					   sizeof ( buf ) ) ) < 0 ){
23 		printf ( "Could not find \"%s\": %s\n",
24 			 argv[1], strerror ( rc ) );
25 		return 1;
26 	}
27 
28 	printf ( "%s = %s\n", argv[1], buf );
29 	return 0;
30 }
31 
set_exec(int argc,char ** argv)32 static int set_exec ( int argc, char **argv ) {
33 	int rc;
34 
35 	if ( argc != 3 ) {
36 		printf ( "Syntax: %s <identifier> <value>\n", argv[0] );
37 		return 1;
38 	}
39 
40 	if ( ( rc = storef_named_setting ( argv[1], argv[2] ) ) != 0 ) {
41 		printf ( "Could not set \"%s\"=\"%s\": %s\n",
42 			 argv[1], argv[2], strerror ( rc ) );
43 		return 1;
44 	}
45 
46 	return 0;
47 }
48 
clear_exec(int argc,char ** argv)49 static int clear_exec ( int argc, char **argv ) {
50 	int rc;
51 
52 	if ( argc != 2 ) {
53 		printf ( "Syntax: %s <identifier>\n", argv[0] );
54 		return 1;
55 	}
56 
57 	if ( ( rc = delete_named_setting ( argv[1] ) ) != 0 ) {
58 		printf ( "Could not clear \"%s\": %s\n",
59 			 argv[1], strerror ( rc ) );
60 		return 1;
61 	}
62 
63 	return 0;
64 }
65 
66 struct command nvo_commands[] __command = {
67 	{
68 		.name = "show",
69 		.exec = show_exec,
70 	},
71 	{
72 		.name = "set",
73 		.exec = set_exec,
74 	},
75 	{
76 		.name = "clear",
77 		.exec = clear_exec,
78 	},
79 };
80