aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2011-05-05 23:10:27 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2011-05-05 23:10:27 +0000
commitbce37370d3ffad9d0f7ec5c89132370fede02b58 (patch)
tree943ea8a1b268f97c231912c817181d47ab144e18 /res
parentb1614a0ef555ea0a00578050ecf75c943e28d3a6 (diff)
Add "calendar show types" CLI command.
(closes issue #18246) Reported by: junky Patches: calendar_types.diff uploaded by junky (license 177) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@317483 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_calendar.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/res/res_calendar.c b/res/res_calendar.c
index f03a5b8c7..e6b724baf 100644
--- a/res/res_calendar.c
+++ b/res/res_calendar.c
@@ -1479,6 +1479,35 @@ static char *handle_show_calendars(struct ast_cli_entry *e, int cmd, struct ast_
#undef FORMAT
}
+/*! \brief CLI command to list of all calendars types currently loaded on the backend */
+static char *handle_show_calendars_types(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+#define FORMAT "%-10.10s %-30.30s\n"
+ struct ast_calendar_tech *iter;
+
+
+ switch(cmd) {
+ case CLI_INIT:
+ e->command = "calendar show types";
+ e->usage =
+ "Usage: calendar show types\n"
+ " Lists all registered calendars types.\n";
+ return NULL;
+ case CLI_GENERATE:
+ return NULL;
+ }
+
+ ast_cli(a->fd, FORMAT, "Type", "Description");
+ AST_LIST_LOCK(&techs);
+ AST_LIST_TRAVERSE(&techs, iter, list) {
+ ast_cli(a->fd, FORMAT, iter->type, iter->description);
+ }
+ AST_LIST_UNLOCK(&techs);
+
+ return CLI_SUCCESS;
+#undef FORMAT
+}
+
static char *epoch_to_string(char *buf, size_t buflen, time_t epoch)
{
struct ast_tm tm;
@@ -1599,6 +1628,7 @@ static struct ast_cli_entry calendar_cli[] = {
AST_CLI_DEFINE(handle_show_calendar, "Display information about a calendar"),
AST_CLI_DEFINE(handle_show_calendars, "Show registered calendars"),
AST_CLI_DEFINE(handle_dump_sched, "Dump calendar sched context"),
+ AST_CLI_DEFINE(handle_show_calendars_types, "Show all calendar types loaded"),
};
static int calendar_event_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)