degesch: add /alias that only lists aliases

This commit is contained in:
Přemysl Eric Janouch 2015-07-10 01:45:39 +02:00
parent 0fd53af0d1
commit 5da45877d6
1 changed files with 43 additions and 0 deletions

View File

@ -6806,6 +6806,45 @@ handle_command_save (struct handler_args *a)
return true;
}
static bool
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 config_item_ *alias;
while ((alias = str_map_iter_next (&iter)))
{
if (!config_item_type_is_string (alias->type))
continue;
struct str definition;
str_init (&definition);
config_item_write_string (&definition, &alias->value.string);
log_global_indent (ctx, " /#s: #s", iter.link->key, definition.str);
str_free (&definition);
}
return true;
}
static bool
handle_command_alias (struct handler_args *a)
{
char *name = cut_word (&a->arguments);
if (!*name)
return show_aliases_list (a->ctx);
char *definition = cut_word (&a->arguments);
if (!*definition)
return false;
// TODO: set the alias "name" to "definition"
return true;
}
static bool
handle_command_msg (struct handler_args *a)
{
@ -7402,6 +7441,10 @@ g_command_handlers[] =
NULL,
handle_command_save, 0 },
{ "alias", "List or set aliases",
"[<name> <definition>]",
handle_command_alias, 0 },
{ "msg", "Send message to a nick or channel",
"<target> <message>",
handle_command_msg, HANDLER_SERVER | HANDLER_NEEDS_REG },