degesch: mostly finish /alias sans name checking
This commit is contained in:
parent
b987b2cc64
commit
a24c068a3b
27
degesch.c
27
degesch.c
@ -6818,9 +6818,15 @@ show_aliases_list (struct app_context *ctx)
|
||||
log_global_indent (ctx, "");
|
||||
log_global_indent (ctx, "Aliases:");
|
||||
|
||||
struct str_map_iter iter;
|
||||
str_map_iter_init (&iter, get_aliases_config (ctx));
|
||||
struct str_map *aliases = get_aliases_config (ctx);
|
||||
if (!aliases->len)
|
||||
{
|
||||
log_global_indent (ctx, " (none)");
|
||||
return true;
|
||||
}
|
||||
|
||||
struct str_map_iter iter;
|
||||
str_map_iter_init (&iter, aliases);
|
||||
struct config_item_ *alias;
|
||||
while ((alias = str_map_iter_next (&iter)))
|
||||
{
|
||||
@ -6839,15 +6845,22 @@ show_aliases_list (struct app_context *ctx)
|
||||
static bool
|
||||
handle_command_alias (struct handler_args *a)
|
||||
{
|
||||
char *name = cut_word (&a->arguments);
|
||||
if (!*name)
|
||||
if (!*a->arguments)
|
||||
return show_aliases_list (a->ctx);
|
||||
|
||||
char *definition = cut_word (&a->arguments);
|
||||
if (!*definition)
|
||||
// TODO: validate the name; maybe also while loading configuration
|
||||
char *name = cut_word (&a->arguments);
|
||||
if (!*a->arguments)
|
||||
return false;
|
||||
|
||||
// TODO: set the alias "name" to "definition"
|
||||
struct config_item_ *alias = config_item_string_from_cstr (a->arguments);
|
||||
|
||||
struct str definition;
|
||||
str_init (&definition);
|
||||
config_item_write_string (&definition, &alias->value.string);
|
||||
str_map_set (get_aliases_config (a->ctx), name, alias);
|
||||
log_global_status (a->ctx, "Created alias /#s: #s", name, definition.str);
|
||||
str_free (&definition);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user