Make "automount -LL -o whatever" present options in the same order
as used by automountd(8). MFC after: 1 month Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
4d58da13af
commit
8ee4f5ef45
@ -381,13 +381,12 @@ main_automount(int argc, char **argv)
|
|||||||
parse_master(root, AUTO_MASTER_PATH);
|
parse_master(root, AUTO_MASTER_PATH);
|
||||||
|
|
||||||
if (show_maps) {
|
if (show_maps) {
|
||||||
root->n_options = concat(options, ',', root->n_options);
|
|
||||||
if (show_maps > 1) {
|
if (show_maps > 1) {
|
||||||
node_expand_indirect_maps(root);
|
node_expand_indirect_maps(root);
|
||||||
node_expand_ampersand(root, NULL);
|
node_expand_ampersand(root, NULL);
|
||||||
}
|
}
|
||||||
node_expand_defined(root);
|
node_expand_defined(root);
|
||||||
node_print(root);
|
node_print(root, options);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,13 +607,16 @@ node_options(const struct node *n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
node_print_indent(const struct node *n, int indent)
|
node_print_indent(const struct node *n, const char *cmdline_options,
|
||||||
|
int indent)
|
||||||
{
|
{
|
||||||
const struct node *child, *first_child;
|
const struct node *child, *first_child;
|
||||||
char *path, *options;
|
char *path, *options, *tmp;
|
||||||
|
|
||||||
path = node_path(n);
|
path = node_path(n);
|
||||||
options = node_options(n);
|
tmp = node_options(n);
|
||||||
|
options = concat(cmdline_options, ',', tmp);
|
||||||
|
free(tmp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do not show both parent and child node if they have the same
|
* Do not show both parent and child node if they have the same
|
||||||
@ -644,16 +647,21 @@ node_print_indent(const struct node *n, int indent)
|
|||||||
free(options);
|
free(options);
|
||||||
|
|
||||||
TAILQ_FOREACH(child, &n->n_children, n_next)
|
TAILQ_FOREACH(child, &n->n_children, n_next)
|
||||||
node_print_indent(child, indent + 2);
|
node_print_indent(child, cmdline_options, indent + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Recursively print node with all its children. The cmdline_options
|
||||||
|
* argument is used for additional options to be prepended to all the
|
||||||
|
* others - usually those are the options passed by command line.
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
node_print(const struct node *n)
|
node_print(const struct node *n, const char *cmdline_options)
|
||||||
{
|
{
|
||||||
const struct node *child;
|
const struct node *child;
|
||||||
|
|
||||||
TAILQ_FOREACH(child, &n->n_children, n_next)
|
TAILQ_FOREACH(child, &n->n_children, n_next)
|
||||||
node_print_indent(child, 0);
|
node_print_indent(child, cmdline_options, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct node *
|
static struct node *
|
||||||
|
@ -87,7 +87,7 @@ void node_expand_ampersand(struct node *root, const char *key);
|
|||||||
void node_expand_wildcard(struct node *root, const char *key);
|
void node_expand_wildcard(struct node *root, const char *key);
|
||||||
int node_expand_defined(struct node *root);
|
int node_expand_defined(struct node *root);
|
||||||
void node_expand_indirect_maps(struct node *n);
|
void node_expand_indirect_maps(struct node *n);
|
||||||
void node_print(const struct node *n);
|
void node_print(const struct node *n, const char *cmdline_options);
|
||||||
void parse_master(struct node *root, const char *path);
|
void parse_master(struct node *root, const char *path);
|
||||||
void parse_map(struct node *parent, const char *map, const char *args,
|
void parse_map(struct node *parent, const char *map, const char *args,
|
||||||
bool *wildcards);
|
bool *wildcards);
|
||||||
|
Loading…
Reference in New Issue
Block a user