[settings] Display canonical setting name in output of "show" command

Enable the "show" command to display the full, canonicalised name of
the fetched setting.  For example:

  iPXE> show mac
  net0/mac:hex = 52:54:00:12:34:56

  iPXE> dhcp && show ip
  DHCP (net0 52:54:00:12:34:56)... ok
  net0.dhcp/ip:ipv4 = 10.0.0.168

  iPXE> show net0/6
  net0.dhcp/dns:ipv4 = 10.0.0.6

Inspired-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2011-03-22 19:12:10 +00:00
parent ba8dd80487
commit 5fbd0207b2
3 changed files with 50 additions and 22 deletions

View File

@@ -54,7 +54,8 @@ static struct command_descriptor show_cmd =
static int show_exec ( int argc, char **argv ) {
struct show_options opts;
const char *name;
char buf[256];
char name_buf[32];
char value_buf[256];
int rc;
/* Parse options */
@@ -65,15 +66,16 @@ static int show_exec ( int argc, char **argv ) {
name = argv[optind];
/* Fetch setting */
if ( ( rc = fetchf_named_setting ( name, buf,
sizeof ( buf ) ) ) < 0 ) {
if ( ( rc = fetchf_named_setting ( name, name_buf, sizeof ( name_buf ),
value_buf,
sizeof ( value_buf ) ) ) < 0 ) {
printf ( "Could not find \"%s\": %s\n",
name, strerror ( rc ) );
return rc;
}
/* Print setting value */
printf ( "%s = %s\n", name, buf );
printf ( "%s = %s\n", name_buf, value_buf );
return 0;
}