mirror of https://github.com/ipxe/ipxe.git
Merge 6733296243
into 7e64e9b670
commit
76f321c871
|
@ -63,6 +63,7 @@ static int show_exec ( int argc, char **argv ) {
|
||||||
struct named_setting setting;
|
struct named_setting setting;
|
||||||
struct settings *origin;
|
struct settings *origin;
|
||||||
struct setting fetched;
|
struct setting fetched;
|
||||||
|
struct setting *iter;
|
||||||
char name_buf[32];
|
char name_buf[32];
|
||||||
char *value;
|
char *value;
|
||||||
int len;
|
int len;
|
||||||
|
@ -76,6 +77,22 @@ static int show_exec ( int argc, char **argv ) {
|
||||||
if ( ( rc = parse_existing_setting ( argv[optind], &setting ) ) != 0 )
|
if ( ( rc = parse_existing_setting ( argv[optind], &setting ) ) != 0 )
|
||||||
goto err_parse_setting;
|
goto err_parse_setting;
|
||||||
|
|
||||||
|
if ( setting.settings && setting.setting.name[0] == 0 ) {
|
||||||
|
/* The user requested a scope name (e.g. "show net1/"). Iterate
|
||||||
|
* over all settings and show relevant ones, similar to how the
|
||||||
|
* config interface would present it. */
|
||||||
|
for_each_table_entry ( iter, SETTINGS ) {
|
||||||
|
if ( ! setting_applies ( setting.settings, iter ) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ( fetchf_setting_copy ( setting.settings, iter,
|
||||||
|
&origin, &fetched, &value ) < 0 )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
setting_name ( origin, &fetched, name_buf, sizeof ( name_buf ) );
|
||||||
|
printf ( "%s/%s = %s\n", setting.settings->name, iter->name, value );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
/* Fetch formatted setting value */
|
/* Fetch formatted setting value */
|
||||||
if ( ( len = fetchf_setting_copy ( setting.settings, &setting.setting,
|
if ( ( len = fetchf_setting_copy ( setting.settings, &setting.setting,
|
||||||
&origin, &fetched, &value ) ) < 0 ) {
|
&origin, &fetched, &value ) ) < 0 ) {
|
||||||
|
@ -88,6 +105,7 @@ static int show_exec ( int argc, char **argv ) {
|
||||||
/* Print setting value */
|
/* Print setting value */
|
||||||
setting_name ( origin, &fetched, name_buf, sizeof ( name_buf ) );
|
setting_name ( origin, &fetched, name_buf, sizeof ( name_buf ) );
|
||||||
printf ( "%s = %s\n", name_buf, value );
|
printf ( "%s = %s\n", name_buf, value );
|
||||||
|
}
|
||||||
|
|
||||||
/* Success */
|
/* Success */
|
||||||
rc = 0;
|
rc = 0;
|
||||||
|
|
Loading…
Reference in New Issue